Java EEコンテナー(またはSpringコンテナー)内でのJPAの使用を検討します。
JTAとリソースローカルトランザクションの主な違いは次のとおりです(JTAを使用してコンテナによって管理される第1レベルのキャッシュの概念を除く)。
JTAは、entityManagerが1つ以上のエンティティをフラッシュし、コミットが実行されたときに(手動で、またはトランザクションメソッドの最後に)閉じるとすぐにJDBCトランザクションを開きます。
一方、リソースローカルトランザクション内のコードブロックは、最初の操作がデータベースに送信されるとすぐにJDBCトランザクションを開きます。JTAのようにデータベースへのアクセスを最適化するための永続性遅延の概念はありません。