我正在尝试提高存储库方法的性能。我在我的一个实体UserEntity中有一个OneToMany关系,有一组懒惰加载的AddressEntities。
在AddressEntity中:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = EntityConstants.COLUMN_USER_ID, referencedColumnName = EntityConstants.COLUMN_USER_ID)
private UserEntity user;
在UserEntity中:
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
private List<AddressEntity> addresses;
问题是当我获取AddressEntity时,也会向数据库查询用户表。据我所知,这是检查UserEntity的存在,并创建一个代理对象。
这需要时间,在这种情况下我对用户实体是否存在不感兴趣。有没有办法阻止hibernate做这个额外的查询,只是让userEntity为null?
提前致谢, 马库斯
答案 0 :(得分:0)
我只选择了我需要的属性来解决这个问题:
SELECT ad.longitude, ad.latitude FROM AddressEntity ad
这不会导致hibernate检查未选中的关系上的代理对象。