ras*_*cio 5 java hibernate jpa
如果我有两个休眠实体,例如:
@Entity
class Company {
@Id
Integer id;
String name;
}
@Entity
class Person {
Integer id;
String name;
@ManyToOne
Company company;
}
Run Code Online (Sandbox Code Playgroud)
我有一个已经存储的公司,例如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);
Run Code Online (Sandbox Code Playgroud)
它只保存参考,还是还用 更新公司name=null?
是的,你可以做到。
它是只保存引用,还是还用 name=null 更新公司?
默认情况下cascade,像这样,Hibernate 将不执行任何操作。所以答案是:它只保存一个外键。
最有效的(也适用于 JPA)方法是使用session.load(Company.class, 1). 它返回一个代理而不向数据库发出任何请求。但是,当然,你需要为此举行一次会议。
| 归档时间: |
|
| 查看次数: |
2718 次 |
| 最近记录: |