Spring JPA (Hibernate) Entity Manager を使用して接続が接続プールに返されるのはいつですか?
プロセスの理解:
Spring トランザクション マネージャーはトランザクション管理の抽象化として機能しますが、実際のトランザクションは JDBC 接続レベルで発生します。
-
トランザクション インターセプター:
@Transactional メソッドが呼び出されると、TransactionInterceptor アスペクトによってインターセプトされます。
-
トランザクション管理:
TransactionInterceptor は、トランザクション管理を構成された AbstractPlatformTransactionManager 実装 (この場合は JpaTransactionManager) に委任します。 .
-
Entity Manager Binding:
JpaTransactionManager は、現在のトランザクションを EntityManager にバインドし、トランザクションに関与するすべての DAO が同じ永続コンテキストを共有するようにします。
-
トランザクション制御:
JpaTransactionManager は、EntityManager Transaction API を使用してトランザクションを制御します。
-
トランザクション完了:
トランザクションの完了 (コミット/ロールバック) 時に、JdbcTransaction
-
DataSource による接続処理:
DataSourceConnectionProvider (この例では、HikariCP 用に構成されています) は、JDBC 接続を閉じて、JDBC 接続を返します。接続プール。
RESOURCE_LOCAL トランザクションに関する注意:
RESOURCE_LOCAL トランザクションの場合は、hibernate.connection.provider_disables_autocommit プロパティを設定して、遅延接続の取得を保証します。
以上が記事の内容に適した質問ベースのタイトルをいくつか紹介します。
* Spring JPA と Hibernate ハンドル接続プールはどのように戻りますか?
* Spring JPA Tra で接続がプールに解放されるのはいつですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。