我在EJB2.0
图层上使用transactions
并从那里打电话给DAO
层,其中正在对db进行hibernate调用。关于休眠懒惰初始化错误
问题时遇到了现在的问题是,因为我设置lazy="false"
即休眠正在对数据库多次调用,现在我试图改变lazy="true"
但现在我把我们自己:
org.hibernate.LazyInitializationException:不能初始化代理 - 拥有会话已关闭
错误消息。
我做了一些研究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"
会高度赞赏任何建议,以提高休眠的性能。
更新了有关如何调用交易的详细信息。 – Rachel 2012-02-08 18:40:15