簡體   English   中英

使用僅具有ID值的實體保存外鍵

[英]Saving a foreign key using entity with only id valorized

如果我有兩個像這樣的休眠實體:

@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更新公司?

是的,您可以做到。

它是否僅保存引用,還是使用name = null更新公司?

使用默認的cascade ,這樣,Hibernate將什么也不做。 因此答案是:它只保存一個外鍵。

最有效的方法(也適用於JPA)是使用session.load(Company.class, 1) 它不向數據庫發出任何請求就返回一個代理。 但是,當然,您需要為此舉行一次會議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM