一尘不染

会话关闭后,如何使用休眠方式访问延迟加载的字段?

hibernate

考虑这种情况:

  • 我已经通过hibernate加载了一个父实体
  • 父级包含子级的集合,这些子项很大且很懒
  • 在此初始加载后,hibernate会话在用户查看父数据时关闭
  • 用户可以选择查看惰性儿童集合的内容
  • 我现在希望加载该收藏集

加载此收藏集的方式/最佳方式是什么?

  • 假设无法进行会话查看,因为只有在用户查看了“父级”并决定查看“子级”之后,才会进行“子级”集合的获取。
  • 这是一项将由基于Web和桌面的客户端远程访问的服务。

谢谢。


阅读 240

收藏
2020-06-20

共1个答案

一尘不染

我对用户正在查看的内容进行了一些假设,但似乎您只想在用户已经查看了父级并且确实想看到子级的情况下检索子级。

为什么不尝试打开一个新的会话并由父母取回孩子呢?与…类似的东西

criteria = session.createCriteria(Child.class);
criteria.add(Restrictions.eq("parent", parent));
List<Child> children = criteria.list();
2020-06-20