如果我有两个hibernate实体,如:
@Entity
class Company {
@Id
Integer id;
String name;
}
@Entity
class Person {
Integer id;
String name;
@ManyToOne
Company company;
}我已经有了一家像Company(id:1, name:"Acme")这样的公司
我可以用它的id来创建一个引用公司的人而不是加载整个记录,例如:
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更新公司?
发布于 2016-02-18 13:37:35
是的,你能做到的。
它只是保存参考,还是使用name=null更新公司?
对于默认的cascade,像这样,Hibernate什么也做不了。所以答案是:它只保存了一个外键。
最有效的方法(也适用于JPA )是使用session.load(Company.class, 1)。它返回一个代理,而不对数据库执行任何请求。但是,当然,你需要有一个会话。
https://stackoverflow.com/questions/35482046
复制相似问题