当您拥有实体列表时,您将如何预先加载特定实体具有的所有关系,例如:
List<Question> questions = query.getResultList();
查询在哪里:SELECT q FROM Question q;
我知道你可以使用Hibernate.initialize()
,但这是否意味着我需要遍历存储层中的列表?还是有更好的解决方案?
当您拥有实体列表时,您将如何预先加载特定实体具有的所有关系,例如:
List<Question> questions = query.getResultList();
查询在哪里:SELECT q FROM Question q;
我知道你可以使用Hibernate.initialize()
,但这是否意味着我需要遍历存储层中的列表?还是有更好的解决方案?
您可以使用10.2.3.5.3。JPQL 获取连接。
FETCH JOIN 允许获取关联作为执行查询的副作用。FETCH JOIN 在实体及其相关实体上指定。
从上面的链接借来的一个例子:
SELECT mag FROM Magazine mag LEFT JOIN FETCH mag.articles WHERE mag.id = 1
我认为它的一个优点FETCH JOIN
是您的默认设置可以是惰性的。