java - Hibernate.initialize(list) 与 setFetchMode

标签 java hibernate jpa orm fetch

我正在寻找有关 Hibernate.initialize(list)setFetchMode 之间差异的一些解释...

据我了解,它们有相同的目的:加载惰性集合。

还有别的吗?

我可以想象的另一件事是,通过 Criteria API 中的 de setFetchMode,您可以在集合中添加一些 Criterion

最佳答案

使用 FetchMode 将允许您在单个选择中获取所有数据(通过将根实体加入到您也有兴趣获取的其他关联)。

Hibernate.initialize(list) 将始终发出新的选择。

加入最多一个一对多关联是合适的,而多对一关联没有严格的提取限制。

如果您需要选择多个一对多关联,则需要进行额外的选择。您可以使用:

我的建议是使用explicit fetching policies on a per-query basis并始终验证 actual executed SQL queries.

关于java - Hibernate.initialize(list) 与 setFetchMode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24820969/

相关文章:

javascript - 如何从浏览器FETCH触发浏览器下载?

Java:当类加载器加载时,为类的物理字节分配的内存在哪里?

java - Servlet的反射(reflection),Httpservletrequest类型正在获取RequestFacade类型并且无法调用方法

java - Tomcat 6、DB2 JNDI 数据源

java - 有什么方法可以让 JPA 更快地持久化对象吗?

jpa @postpersist @postupdate 仅在事务提交后

java - 带有 Spring 数据 JPA : could not extract ResultSet 的 Spring Boot

java - 如何比较字符串以获取缺失的单词?

java - Hibernate 中没有复合键的一对多关联

java - 将 JPA 实体转换为映射