【问题标题】:How to reload lazy collections with hibernate after transaction is closed事务关闭后如何使用休眠重新加载惰性集合
【发布时间】:2016-08-04 19:01:12
【问题描述】:

假设我有两个 Java POJO:大学和学生。 “大学”包括学生列表。

该集合在休眠映射文件中被标记为延迟加载。 因此,如果我从休眠中收到“大学”对象,则在事务关闭后我将无法访问学生列表。

这对我来说是个问题,因为在某些(不是所有!)情况下,我需要访问此列表。如果我在我的应用程序的数据库层中完成所有工作,这将没有问题。但正如您可以想象的那样:该层仅负责 CRUD 任务。 更改是在业务层中进行的。因此,如果业务层收到该对象,则事务已经关闭。

这方面的最佳做法是什么?

【问题讨论】:

    标签: java database hibernate transactions lazy-loading


    【解决方案1】:

    一个解决方案是Open Session View。您还可以通过在关闭会话之前调用 getters/ 迭代子集合来初始化子实体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2012-08-01
      • 1970-01-01
      相关资源
      最近更新 更多