1
JPAでは、レイジープロパティのロードなど、選択されたタイプのクエリでトランザクション/セッションを開く必要がありますか?これらはトランザクション外にロードできませんか?私はそれが更新や挿入に必要な理由を完全に理解していますが、選択のための不要な制約のように思えます(初心者には怠惰な読み込みに多くの不幸があります)。エンティティをロードするためにJPAでトランザクションが必要な理由
JPAでは、レイジープロパティのロードなど、選択されたタイプのクエリでトランザクション/セッションを開く必要がありますか?これらはトランザクション外にロードできませんか?私はそれが更新や挿入に必要な理由を完全に理解していますが、選択のための不要な制約のように思えます(初心者には怠惰な読み込みに多くの不幸があります)。エンティティをロードするためにJPAでトランザクションが必要な理由
JPAはトランザクションを必要としませんが、EntityManager
(休止状態:Session
)です。そのため回避策はOpenTransactionInView
ではなくOpenEntityManagerInView
(またはOpenSessionInView
)で行うことができます。
あなたはトランザクションが必要だと思いますか?トランザクションのない簡単なコード例については、hereを参照してください。
OpenEntityManagerInViewは、遅延プロパティをロードするための2番目のトランザクションを開始します。これは回避策です。正確には、私の意見では、遅延ロードを処理するための素晴らしい設計パターンではありません。 – Mouscellaneous