Spring JPA (Hibernate) Entity Manager Connection Pool Management
Avec l'utilisation Spring JPA du Hibernate Entity Manager, le retour des connexions au le pool de connexions se produit à la fin de la transaction. Ce processus est géré de manière transparente par l'interaction entre les composants Spring et la logique de gestion des connexions JDBC d'Hibernate.
TransactionInterceptor de Spring intercepte les appels de méthodes transactionnelles, déléguant la gestion des transactions au JpaTransactionManager. Le JpaTransactionManager associe la transaction en cours à un EntityManager, garantissant que tous les DAO participants partagent le même contexte de persistance.
Lors de la validation ou de l'annulation de la transaction, le JpaTransactionManager délègue la fin de la transaction à la session Hibernate (Entity Manager). La méthode de fermeture de la Session déclenche la libération de la connexion logique JDBC.
La connexion logique délègue les opérations de fermeture au fournisseur de connexion configuré (DataSourceConnectionProvider). Le fournisseur de connexion, à son tour, ferme le proxy de connexion JDBC et le renvoie au pool de connexions.
Pour les transactions RESOURCE_LOCAL, la propriété hibernate.connection.provider_disables_autocommit doit être définie pour garantir que les connexions à la base de données sont acquises paresseusement plutôt qu'à le début d'une transaction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!