Maison  >  Article  >  base de données  >  Voici quelques titres basés sur des questions qui correspondent au contenu de votre article : * Comment Spring JPA et Hibernate gèrent-ils le retour du pool de connexions ? * Quand les connexions sont-elles libérées dans le pool au printemps JPA Tra

Voici quelques titres basés sur des questions qui correspondent au contenu de votre article : * Comment Spring JPA et Hibernate gèrent-ils le retour du pool de connexions ? * Quand les connexions sont-elles libérées dans le pool au printemps JPA Tra

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 02:13:03844parcourir

Here are a few question-based titles that fit your article content:

* How Do Spring JPA and Hibernate Handle Connection Pool Return?
* When Are Connections Released Back to the Pool in Spring JPA Transactions?
* Understanding Connection Management in Spr

Quand les connexions sont-elles renvoyées au pool de connexions avec Spring JPA (Hibernate) Entity Manager ?

Comprendre le processus :

Le gestionnaire de transactions Spring agit comme une abstraction pour la gestion des transactions, tandis que les transactions réelles se produisent au niveau de la connexion JDBC.

  1. Intercepteur de transactions :
    Lorsqu'une méthode @Transactional est appelée, elle est interceptée par l'aspect TransactionInterceptor.
  2. Gestion des transactions :
    Le TransactionInterceptor délègue la gestion des transactions à l'implémentation configurée d'AbstractPlatformTransactionManager (JpaTransactionManager dans ce cas) .
  3. Liaison du gestionnaire d'entité :
    JpaTransactionManager lie la transaction en cours à un EntityManager, garantissant que tous les DAO impliqués dans la transaction partagent le même contexte de persistance.
  4. Contrôle des transactions :
    JpaTransactionManager utilise l'API de transaction EntityManager pour contrôler les transactions.
  5. Achèvement de la transaction :
    Une fois la transaction terminée (validation/annulation), le JdbcTransaction appelle ManagedClose(), déclenchant la fermeture de la session et de la connexion JDBC.
  6. Gestion de la connexion par DataSource :
    Le DataSourceConnectionProvider (configuré pour HikariCP dans cet exemple) ferme la connexion JDBC et la renvoie à le pool de connexions.

Remarque sur les transactions RESOURCE_LOCAL :

Pour les transactions RESOURCE_LOCAL, définissez la propriété hibernate.connection.provider_disables_autocommit pour garantir une acquisition de connexion paresseuse.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn