首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用只具有身份验证的实体保存外键

使用只具有身份验证的实体保存外键
EN

Stack Overflow用户
提问于 2016-02-18 12:52:56
回答 1查看 2.4K关注 0票数 5

如果我有两个hibernate实体,如:

代码语言:javascript
复制
@Entity
class Company {
     @Id
     Integer id;
     String name;
}

@Entity
class Person {
     Integer id;
     String name;
     @ManyToOne
     Company company;
}

我已经有了一家像Company(id:1, name:"Acme")这样的公司

我可以用它的id来创建一个引用公司的人而不是加载整个记录,例如:

代码语言:javascript
复制
Session session = SessionFactory.openSession();
Company acme = new Company();
acme.setId(1);
Person person = new Person();
person.setName("Manuel");
person.setCompany(acme);

session.save(person);

是只保存引用,还是使用name=null更新公司?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-18 13:37:35

是的,你能做到的。

它只是保存参考,还是使用name=null更新公司?

对于默认的cascade,像这样,Hibernate什么也做不了。所以答案是:它只保存了一个外键。

最有效的方法(也适用于JPA )是使用session.load(Company.class, 1)。它返回一个代理,而不对数据库执行任何请求。但是,当然,你需要有一个会话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35482046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档