オブジェクトは、スレッド毎に用意されていることがわかります。利用して永続化やクエリを実現しています。オブジェクトのフィールドにたどり着くことができます。スレッド別になるよう管理されていることがわかりました。次に、トランザクションの開始と終了について確認してみましょう。それぞれトランザクションの開始・終了処理を担当します。オブジェクトに設定するという処理が、トランザクション開始時に行われます。「新しいトランザクションを開始しようとすると、既存のトランザクションは破棄された上で新しいトランザクションが始まる」ということになります。リクエストに対応するコントローラ・アクションメソッドの呼び出し前後、非同期ジョブの実行前後に呼び出され、標準のトランザクションを構成します。クラスメソッドを呼び出すことで新しいトランザクションの開始はできますが、古い・既存のトランザクションは破棄されて利用できなくなってしまいます。このままでは、複数のトランザクションを並列して扱うことはできません。待避し、空っぽの状態にしてしまえばいいのです。設定する(ThreadLocal#set())だけです。管理するなどして、複数トランザクション管理機能をクラス化してしまえば多少は扱いやすくなるのではないでしょうか。複数並列にトランザクションを扱う方法になりますが、1つ、注意しなければならないことがあります。コミットするように呼び出されます)。戻されるまでの間に例外が発生すると、クローズされずに放置プレイ状態になってしまいます。オブジェクトのトランザクションを確実に・明示的にクローズする実装が必要になるでしょう。いうソルバーを使ってみましたよ、というメモ。手順を参考にインストールを試してみる。