如何加载实体列表?

时间:2012-11-11 18:48:03

标签: java hibernate java-ee jpa

如果您拥有实体列表,您将如何加载特定实体的所有关系,例如:

List<Question> questions = query.getResultList();

查询的位置为:SELECT q FROM Question q;

我知道你可以使用Hibernate.initialize(),但这是否意味着我需要遍历repostiory层中的列表?或者有更好的解决方案吗?

1 个答案:

答案 0 :(得分:4)

您可以使用10.2.3.5.3. JPQL Fetch Joins

  

FETCH JOIN启用了关联的提取,作为执行查询的副作用。 FETCH JOIN是在实体及其相关实体上指定的。

借鉴上述链接的一个例子:

SELECT mag FROM Magazine mag LEFT JOIN FETCH mag.articles WHERE mag.id = 1

我认为FETCH JOIN的一个优点是您的默认设置可能是懒惰的。