如果我有两个休眠实体,例如:
@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
?
是的,你可以做到。
它只保存参考信息,还是还更新公司
名称=空?
默认情况下cascade
,这样的话,Hibernate 将什么都不做。所以答案是:它只保存一个外键。
最有效的(也适用于 JPA)方法是使用session.load(Company.class, 1)
。它返回一个代理而不向数据库发出任何请求。但是,当然,你需要为此举行一次会议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)