[英]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.