有些时候我想将关系定义为延迟加载,因为90%的时间我不想要子实体,但在某些情况下也有可能同时获得整个层次结构。我不想通过使用命名查询来实现这一点,因为当我转换为例如父子层次结构时,父子层次结构非常有用。 JSON格式。目前我的脏黑客是调用.getChildEntities()。size()来强制同一事务中的延迟加载。
有更好的方法吗?
答案 0 :(得分:2)
当然取决于JPA的实施。一些(大多数)将使用您引用的方法调用加载所有内容,但有些人可以发出COUNT(*)查询以获取大小也是出于内存管理的原因(不希望在有很多情况下加载所有元素)
- 安迪(DataNucleus)
答案 1 :(得分:0)
可能您可以使用JOIN FETCH子句
章节:10.2.3.5.3。 JPQL Fetch Joins