Bilakah Sambungan Dikembalikan ke Kumpulan Sambungan dengan Pengurus Entiti Spring JPA (Hibernate)?
Memahami Proses:
Pengurus urus niaga Spring bertindak sebagai abstraksi untuk pengurusan urus niaga, manakala urus niaga sebenar berlaku pada tahap Sambungan JDBC.
-
Pemintas Transaksi:
Apabila kaedah @Transactional dipanggil, ia dipintas oleh Aspek TransactionInterceptor.
-
Pengurusan Transaksi:
TransactionInterceptor mewakilkan pengurusan transaksi kepada pelaksanaan AbstractPlatformTransactionManager yang dikonfigurasikan (JpaTransactionManager) .
-
Pengikatan Pengurus Entiti:
JpaTransactionManager mengikat transaksi semasa kepada EntityManager, memastikan semua DAO yang terlibat dalam transaksi berkongsi Konteks Kegigihan yang sama.
-
Kawalan Transaksi:
JpaTransactionManager menggunakan EntityManager Transaction API untuk mengawal urus niaga.
-
Selesai Transaksi:
Setelah transaksi selesai (komit/balik semula), Jdbc Transaction calls managedClose(), mencetuskan penutupan Session dan JDBC Connection.
-
Pengendalian Sambungan oleh DataSource:
DataSourceConnectionProvider (dikonfigurasikan untuk HikariCP dalam contoh ini) menutup Sambungan JDBC, mengembalikannya kepada kolam sambungan.
Nota tentang Transaksi RESOURCE_LOCAL:
Untuk transaksi RESOURCE_LOCAL, tetapkan sifat hibernate.connection.provider_disables_autocommit untuk memastikan pemerolehan sambungan malas. >
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda:
* Bagaimana Spring JPA dan Hibernate Mengendalikan Kolam Sambungan Kembali?
* Bilakah Sambungan Dikeluarkan Kembali ke Kolam di Spring JPA Tra. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!