如何检查Hibernate列表以查看它是否已初始化?

时间:2011-10-26 21:52:33

标签: hibernate lazy-initialization

在Hibernate中,假设您有一个名为department的类,它包含一个雇员列表。有没有办法检查员工名单,以确定它是否已经初始化?似乎无论你访问什么属性,它都会给你一个懒惰的初始化异常。有没有办法测试它的初始化而没有得到异常?

我想知道它是否已初始化,如果没有,只需查询数据并填写即可。

2 个答案:

答案 0 :(得分:1)

您不需要手动执行查询 - 延迟初始化的全部内容是ORM将在您访问数据时为您处理它。

如果你得到延迟初始化异常,则意味着没有打开hibernate会话因此它不能获取子进程。

使用open-session-in-view(在Web应用程序中保持会话在请求的生命周期内保持打开状态),或者在加载父级时预先初始化集合(具有加载开销的开销)可能不需要的数据,如果总是需要它就可以了。

答案 1 :(得分:1)

  

是否有办法检查员工名单以确定是否有   已经初学了吗?

您可以使用Hibernate.isInitialized()来检查hibernate实体是否已初始化。

  

我想看看它是否已经初始化,如果没有,那就去做吧   查询数据并填写。

您可以使用Hibernate.initialize()强制执行hibernate实体的初始化。如果尚未初始化,它将为您查询并填写数据。