我正在寻找关于Hibernate.initialize(list)
和setFetchMode
之间差异的一些解释......
据我所知,他们有同样的目的:加载一个懒惰的集合。
还有其他什么吗?
我能想象的另一件事是,使用Criteria API中的de setFetchMode
,您可以在收藏中添加一些Criterion
答案 0 :(得分:2)
使用FetchMode将允许您在单个选择中获取所有数据(通过将根实体加入您也有兴趣获取的其他关联)。
Hibernate.initialize(list)将始终发出新的选择。
最多加入一对多关联是合适的,而多对一关联没有严格的提取限制。
如果您需要选择多个一对多关联,则需要进行其他选择。您可以使用:
我的建议是使用explicit fetching policies on a per-query basis并始终验证actual executed SQL queries.