有人能指出我在JPA / Hibernate lazy / eager fetching上有一个特别好的资源吗?

时间:2010-09-04 23:53:50

标签: hibernate orm jpa lazy-evaluation

寻找包含策略/错误/解决方法的非常好的文章。我更喜欢纯粹的JPA解决方案,但我知道Hibernate提供了很多扩展。

2 个答案:

答案 0 :(得分:1)

我不确定你到底在寻找什么。但简单来说,LAZY只是意味着在加载父对象时不会加载子关联,它将在应用程序明确询问时加载。 EAGER表示在加载父级时将加载子关联。

通常,LAZY表现更好(当您不需要或想要加载整个对象图时)。但根据情况,它可能只是次优或导致着名的“N + 1 SELECT”问题(在迭代N个实体列表时,访问LAZY关联将触发另一个SELECT,导致1+ N SELECT结尾)。根据具体情况,最好使用EAGER关联 - 或FETCH JOIN来预取关联。

所以我不知道哪个部分不清楚,但这里有一些可能有用的资源:

另见:

答案 1 :(得分:0)

由Bauer和King预订“Java Persistence with Hibernate”,第13章“优化提取和缓存”。您应该能够在线找到该书的副本。