我在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