假设您有一辆装有轮胎的汽车。
@Entity
public class Car {
private Long id;
@OneToMany(mappedBy = "car")
private Set<Tire> tires = new HashSet<>();
}
@Entity
public class Tire {
private Long id;
...
}
现在,如果要添加新的Car并添加现有的Tires,则可以获取整个现有的Tire Entities以填充Car's Set。
是否可以仅拥有一些Tire ID并保存汽车而无需先将整个Tire实体先获取到内存中?如果只是一个Tire实例而不是Set实例,是否可以仅使用Tire Id保存它?使用JPA和Criteria API,或者使用JPQL。
您可以通过EntityManager.getReference使用id加载代理“代理”对象。除非您访问对象的任何属性,否则它不会发出任何数据库查询。
如果确实访问属性,则延迟加载机制将启动并加载实际对象。在以下问题演示了代理对象的解剖结构。有用以获得更好的图片
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句