transactions
をEJB2.0
層に使用しており、そこからDAO
層に電話をかけており、そこでは、休止状態のdbを呼び出しています。Hibernate LazyInitializationエラーに関して
問題は、今持っていますlazy="false"
を設定していますので、Hibernateは、データベースへの複数の呼び出しを行っているということです、今私は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
のクエリがバックグラウンドで実行され、アプリケーションの読み込み時間が長くなります。
更新
ここでは、どのようにトランザクションを設定していますされています
* @hibernate.class table="SCHEDULE_ENTRY" discriminator-value="task" lazy="true"
* @hibernate.discriminator column="KIND" length="4"
は非常に休止状態のパフォーマンスを改善するための任意の提案をお願い申し上げます。
トランザクションの呼び出し方法に関する詳細を更新しました。 – Rachel