在Hibernate中,假设您有一个名为department的类,它包含一个雇员列表。有没有办法检查员工名单,以确定它是否已经初始化?似乎无论你访问什么属性,它都会给你一个懒惰的初始化异常。有没有办法测试它的初始化而没有得到异常?
我想知道它是否已初始化,如果没有,只需查询数据并填写即可。
答案 0 :(得分:1)
您不需要手动执行查询 - 延迟初始化的全部内容是ORM将在您访问数据时为您处理它。
如果你得到延迟初始化异常,则意味着没有打开hibernate会话因此它不能获取子进程。
使用open-session-in-view(在Web应用程序中保持会话在请求的生命周期内保持打开状态),或者在加载父级时预先初始化集合(具有加载开销的开销)可能不需要的数据,如果总是需要它就可以了。
答案 1 :(得分:1)
是否有办法检查员工名单以确定是否有 已经初学了吗?
您可以使用Hibernate.isInitialized()来检查hibernate实体是否已初始化。
我想看看它是否已经初始化,如果没有,那就去做吧 查询数据并填写。
您可以使用Hibernate.initialize()强制执行hibernate实体的初始化。如果尚未初始化,它将为您查询并填写数据。