1

是否可以强制 Hibernate 实现的 JPA 使用批量获取进行预加载?

您可能想知道我为什么要做这么奇怪的事情,所以让我解释一下。

我们有两个实体AB. A从to有一个多对一的关系B

我想通过A搜索加载实体,并且希望在它们从存储库返回之前完全加载它们。

但是由于 's 很多而A's 很少B,所有(相关的)B's 都将在二级缓存中。因此,我想避免B每次都从数据库中获取所有 's。

4

1 回答 1

0

据我了解您的问题,解决方案是在 NamedQuery 中使用带有FETCH指令的 NamedQuery:

SELECT DISTINCT B LEFT JOIN FETCH B.a A//will return fully loaded B instances

如果要指定 Batch Size,可以@BatchSize在 Hibernate(不是 JPA)中使用。检查此链接以获取示例。

于 2014-03-12T10:20:45.470 回答