java - 如何在 Hibernate 中初始化集合的集合

标签 java hibernate lazy-loading

我得到一个 util.List 实例。每个实例都有其另一个集合。我想初始化集合的所有实例。这是怎么做的。

Hibernate.initialize(parentList);  

但是当session关闭的时候。可以检索 parentList 的对象的属性。但无法检索其集合实例的属性。我初始化的方式不对还是有其他问题?或者如何初始化所有实例。?

最佳答案

Hibernate.initialize(parentList);

只会初始化列表中的对象,而不是列表内部的关联。

来自文档:

Note: This only ensures intialization of a proxy object or collection; it is not guaranteed that the elements INSIDE the collection will be initialized/materialized.

编辑:根据评论

假设我有一个 Student 实体,每个学生实体都有一个 Course 实体列表。然后可以像这样初始化学生列表:

for (Student student : studentList) {
     Hibernate.initialize(student.getCourses());
}

关于java - 如何在 Hibernate 中初始化集合的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400030/

相关文章:

java - 使用 Java 读取 X.509 证书

java - 如何修复此 Try-With-Resources block 中出现的 "SQLServerException: The connection is closed."问题?

java - Spring 支持或反对 @service 上的私有(private)静态最终不可变的激励

java - gradle 将子项目返回为 null

java - 使用 Transformer 将实体映射到 DTO 时获取实体内的集合

java - OneToOne Lazy 总是获取子项

java - Eclipse + MySql + Hibernate,一个好的介绍?

performance - 是否可以查看/优化 Hibernate 查询计划?

javascript - 具有 HTML5 异步属性和协议(protocol)相关 URL 的 Google Analytics JavaScript 跟踪代码

java - 由于类没有状态,因此无需延迟初始化