gpt4 book ai didi

java - 关于 Hibernate LazyInitialization 错误

转载 作者:行者123 更新时间:2023-12-01 15:33:57 27 4
gpt4 key购买 nike

我在EJB2.0层上使用事务,并从那里调用DAO层,其中对db进行hibernate调用。

我现在遇到的问题是,hibernate 正在对数据库进行多次调用,因为我设置了 lazy="false",现在我尝试更改 lazy="true"但现在我们有了自己的:

org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed

错误消息。

我对SO做了一些研究,发现解决方案可能是

 <prop key="hibernate.default_batch_fetch_size">30</prop>
<prop key="hibernate.jdbc.fetch_size"></prop>

我的问题是 fetch_size 的默认大小是多少,以及这是否是解决此问题的正确方法。

我想要做的就是确保应用程序不会多次调用数据库来运行所有这些 N 查询,因为现在在页面之间导航非常痛苦,并且使应用程序非常慢每次点击页面,都会在后台运行 N 个查询,这会增加应用程序加载时间。

更新

以下是如何设置交易:

 * @hibernate.class table="SCHEDULE_ENTRY" discriminator-value="task" lazy="true"
* @hibernate.discriminator column="KIND" length="4"

非常感谢任何提高 hibernate 性能的建议。

最佳答案

在关闭 session 之前访问对象的成员。这是主要问题。

关于java - 关于 Hibernate LazyInitialization 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197473/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com