我得到了一个util.List
实例。每个实例都有另一个集合。我想初始化集合的所有实例。这是怎么做的。
Hibernate.initialize(parentList);
但是当会话关闭时。可以检索 parentList 的对象的属性。但无法检索其集合的实例属性。我初始化的方式不对还是有其他问题?或者如何初始化所有实例。?
我得到了一个util.List
实例。每个实例都有另一个集合。我想初始化集合的所有实例。这是怎么做的。
Hibernate.initialize(parentList);
但是当会话关闭时。可以检索 parentList 的对象的属性。但无法检索其集合的实例属性。我初始化的方式不对还是有其他问题?或者如何初始化所有实例。?
Hibernate.initialize(parentList);
只会初始化列表中的对象而不是列表中的关联。
从文档:
注意:这只确保代理对象或集合的初始化;不能保证集合内的元素将被初始化/物化。
编辑:根据评论
假设我有一个Student
实体并且每个学生实体都有一个实体列表Course
。然后可以像这样初始化学生列表:
for (Student student : studentList) {
Hibernate.initialize(student.getCourses());
}
一种干净的工作方式是继续使用延迟加载并使用值对象设计模式将数据从持久对象传输到值对象,反之亦然。