寻找包含策略/错误/解决方法的非常好的文章。我更喜欢纯粹的JPA解决方案,但我知道Hibernate提供了很多扩展。
答案 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章“优化提取和缓存”。您应该能够在线找到该书的副本。