0

当您拥有实体列表时,您将如何预先加载特定实体具有的所有关系,例如:

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

查询在哪里:SELECT q FROM Question q;

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

4

1 回答 1

4

您可以使用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是您的默认设置可以是惰性的。

于 2012-11-11T18:56:56.037 回答