2012-02-10 7 views
1

JPAでは、レイジープロパティのロードなど、選択されたタイプのクエリでトランザクション/セッションを開く必要がありますか?これらはトランザクション外にロードできませんか?私はそれが更新や挿入に必要な理由を完全に理解していますが、選択のための不要な制約のように思えます(初心者には怠惰な読み込みに多くの不幸があります)。エンティティをロードするためにJPAでトランザクションが必要な理由

答えて

0

JPAはトランザクションを必要としませんが、EntityManager(休止状態:Session)です。そのため回避策はOpenTransactionInViewではなくOpenEntityManagerInView(またはOpenSessionInView)で行うことができます。

あなたはトランザクションが必要だと思いますか?トランザクションのない簡単なコード例については、hereを参照してください。

+0

OpenEntityManagerInViewは、遅延プロパティをロードするための2番目のトランザクションを開始します。これは回避策です。正確には、私の意見では、遅延ロードを処理するための素晴らしい設計パターンではありません。 – Mouscellaneous

関連する問題