如果我有两个休眠实体,如:
@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
更新公司?
答案 0 :(得分:1)
是的,你可以做到。
它是仅保存引用,还是更新公司 命名=空?
默认情况下cascade
就像那样,Hibernate什么都不做。所以答案是:它只保存一个外键。
最有效(对于JPA也是)方法是使用session.load(Company.class, 1)
。它返回一个代理而不对数据库做任何请求。但是,当然,你需要有一个会话。