0

我们最近在 Hibernate 中有一个 APP 我们开始在 DAO 中使用 Open Session in View 我们获取我们真正需要的数据.. 我们不关闭会话但稍后在我们的控制器中对实体 Hibernate 的任何操作都从数据库中获取数据我知道这种行为是使用开放会话的主要原因,但在某些情况下我不需要获取。我想知道我是否可以告诉休眠在某些情况下不获取数据....

学生.getSchool().getTeachers()

在这种情况下,我已经从这 3 个实体加载了我需要的所有数据,但是休眠开始再次加载学校和教师。

多谢

4

1 回答 1

0

三个主要选项:

  1. 如果您使用 EH-Cache,您无需等待 Hibernate 再次查询数据库中的 Student & School。
  2. 或者你可以在HTTP Session中保留form & Hibernate Session,也可以实现缓存。
  3. 对于仅获取教师的 AJAX 或类似请求,您可以将条件更改为投影或使用休眠查询,以“投影”或仅检索目标实体。在数据库级别,执行连接或子表达式查询。在这种情况下,将加载学生,但仅作为代理。
于 2013-07-18T02:53:48.870 回答