Java 关于Hibernate懒散初始化错误
我在Java 关于Hibernate懒散初始化错误,java,performance,hibernate,orm,Java,Performance,Hibernate,Orm,我在EJB2.0层上使用transactions,并从那里调用DAO层,其中我对db进行hibernate调用 我现在遇到的问题是hibernate正在对数据库进行多次调用,因为我设置了lazy=“false”,现在我试图更改lazy=“true”,但现在我得到了自己的: org.hibernate.LazyInitializationException:无法初始化代理 -所属会话已关闭 错误消息 我对做了一些研究,发现解决方案是可行的 <prop key="hibernate.defa
EJB2.0
层上使用transactions
,并从那里调用DAO
层,其中我对db进行hibernate调用
我现在遇到的问题是hibernate正在对数据库进行多次调用,因为我设置了lazy=“false”
,现在我试图更改lazy=“true”
,但现在我得到了自己的:
org.hibernate.LazyInitializationException:无法初始化代理
-所属会话已关闭
错误消息
我对做了一些研究,发现解决方案是可行的
<prop key="hibernate.default_batch_fetch_size">30</prop>
<prop key="hibernate.jdbc.fetch_size"></prop>
如果您有任何改进hibernate性能的建议,我们将不胜感激
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
当您尝试访问尚未初始化且对象未绑定到会话(分离)的对象(代理)的成员时,会出现该异常。在考虑更改批处理大小之前,必须首先解决该问题
要解决该问题,请确保您要访问的所有属性都已初始化。
这取决于您可以使用延迟加载的事务/会话配置。如果您发布事务/会话配置,这将非常有用
您可以使用Hibernate.initialize()
来初始化成员,但我建议只在需要时更改抓取策略
看一看
我希望我能提供帮助:)在关闭会话之前访问对象的成员。这是主要的问题。更新了关于如何调用事务的详细信息。这里的问题是,我使用ejb事务并从ejb调用dao,因此会话的维护由ejb事务负责,并且存在多个正在运行的嵌套查询,因此不确定延迟异常的确切位置被扔了。
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed