有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我得到了util.List个实例。每个实例都有其另一个集合。我想初始化集合的所有实例。这里是如何做到这一点

Hibernate.initialize(parentList);  

但当会议结束时。可以检索父列表对象的属性。但无法检索其集合实例的属性。我初始化的方式是错误的还是有其他问题?或者如何初始化所有实例


共 (2) 个答案

  1. # 1 楼答案

    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());
    }
    
  2. # 2 楼答案

    一种干净的工作方式是继续使用延迟加载,并使用值对象设计模式将数据从持久对象传输到值对象,反之亦然