Spring JPA는 Hibernate와의 연결을 어떻게 관리합니까?

Barbara Streisand
풀어 주다: 2024-10-26 15:47:30
원래의
956명이 탐색했습니다.

How Does Spring JPA Manage Connections with Hibernate?

Hibernate를 사용하는 Spring JPA의 연결 관리 이해

Spring JPA(Hibernate)에서는 Spring 트랜잭션 관리자의 상호 작용을 통해 연결이 관리됩니다. , JPA 트랜잭션 API, Hibernate의 세션 인터페이스 및 기본 연결 풀.

트랜잭션 시작 및 바인딩

  1. 트랜잭션 서비스 메소드는 TransactionInterceptor Aspect에 의해 차단됩니다. .
  2. TransactionIntreceptor는 관리를 JpaTransactionManager에 위임합니다.
  3. JpaTransactionManager는 Spring 트랜잭션을 EntityManager에 바인딩합니다.

연결 획득 및 종료

  1. JPA Transaction API는 EntityManager Transaction API를 사용하여 트랜잭션을 시작합니다.
  2. Hibernate의 Session은 JDBC Connection을 사용하여 트랜잭션을 관리합니다.
  3. 트랜잭션이 종료될 때(커밋/롤백) ), JdbcTransaction이 닫힙니다.
  4. 이렇게 하면 Hibernate 세션 종료 및 JDBC 연결 종료가 트리거됩니다.
  5. 연결 풀은 연결을 풀에 반환합니다.

연결 풀링

풀로 반환된 연결은 연결 풀링 DataSource에 의해 관리됩니다. JDBC 연결 자체는 종료 호출을 가로채 연결 풀에 위임하여 물리적 데이터베이스 연결 종료를 방지하는 프록시입니다.

RESOURCE_LOCAL 트랜잭션

RESOURCE_LOCAL 트랜잭션의 경우 다음을 고려하세요. 연결 풀에서 비활성화된 자동 커밋으로 인한 자동 커밋 문제를 방지하기 위해 필요할 때 데이터베이스 연결이 느리게 획득되도록 hibernate.connection.provider_disables_autocommit 속성을 설정합니다.

위 내용은 Spring JPA는 Hibernate와의 연결을 어떻게 관리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿