java - Hibernate 中的延迟加载

标签 java hibernate session orm lazy-loading

我的 Java Web 应用程序使用 Hibernate 来执行 ORM。在我的一些对象中,我使用延迟加载来避免获取数据,直到我绝对需要它。问题是我在 session 中加载初始对象,然后该 session 被销毁。当我稍后尝试解析对象中的延迟加载集合时,出现以下错误:

org.hibernate.LazyInitializationException:未能延迟初始化角色集合:common.model.impl.User.groups,没有 session 或 session 被关闭

我尝试将新 session 与集合关联,然后解析,但这给出了相同的结果。

有谁知道原始 session 消失后如何解决惰性集合问题?

谢谢...

--史蒂夫

最佳答案

三个选项:

  1. 每当集合即将与当前 session 断开连接时,调用 Hibernate.initialize(..)

  2. 将集合声明为 FetchType.EAGER

  3. 将您的用户对象合并(..)回新 session

关于java - Hibernate 中的延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179766/

相关文章:

java - 如何从本地连接的 JNDI 查找 DomainRuntimeServiceMBean?

java - 使用 Hibernate 时无法填充 jcombo 框

java - 为什么 OneToOne 关系不能按预期工作?

php - 来自两列 MySQL 表的两列数组

java - java中如何获取上一个 session id

java - 我如何在 Android 中使用 java.applet.Applet?

java - beans.xml 中的 ms sql 配置

java - JPA Criteria API - 如何从 JPA 获取单向 ManyToOne 关系的对立面

java - ehcache xml 需要 defaultCache 元素,其他缓存正在获取 defaultCache 属性

python - 在哪里初始化 Django session 变量?