[英]JPA save “new” Entity with reference to an existing Entity using only it's id?
假設你有一輛帶有輪胎系列的汽車。
@Entity
public class Car {
private Long id;
@OneToMany(mappedBy = "car")
private Set<Tire> tires = new HashSet<>();
}
@Entity
public class Tire {
private Long id;
...
}
現在,如果您想要添加新車並添加現有輪胎,您可以獲取整個現有輪胎實體以填充Car's Set。
是否可以簡單地使用一些輪胎ID並保存汽車而不首先將整個輪胎實體提取到內存中? 有沒有辦法用Tire Id保存它,如果它只是一個單輪胎實例而不是一個Set? 使用JPA和Criteria API,或者可能是JPQL。
您可以使用id通過EntityManager.getReference加載代理“代理”對象。 除非您訪問該對象的任何屬性,否則它不會發出任何數據庫查詢。
如果您訪問屬性,則延遲加載機制將啟動並加載實際對象。 以下問題演示了代理對象的解剖。 有助於獲得更好的圖片
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.