inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Datasource와 JPA를 같이 사용 할 경우 트랜잭션매니저

929

lim3617

작성한 질문수 7

0

안녕하세요 스프링 데이터 접근 기본 1편 에 강의 내용 중 JpaTransactionManager와 DatasourceTransactionManager를 같이 사용할 경우 JpaTransactionManager 를 사용하면 된다고 하셨는데 관련해서 궁금한 것이있습니다.

 

  1. Jpa와 myBatis를 같이 사용 할 경우 반드시 JpaTransactionManager를 사용해야 하는지 궁금합니다. 현재 JBPM 이라는 오픈소스를 근간으로 하는 솔루션을 개발 중인데 해당 오픈소스 엔진영역은 JPA를 사용하고 나머지 Service class에는 myBatis를 사용 중입니다. 현재 직면하고있는 문제는 일반 서비스 클래스에서 DatasourceTransactionManager로 트랜잭션이 이어지는 중에 JpaTransactionManager를 사용하고 있는 클래스를 호출 하게 되면 JpaTransactionManager 의 getTransaction() 메서드에서 unable to begin transaction 이라는 에러가 발생합니다. 현재 AOP 로 일괄적으로 2개의 트랜잭션매니저를 사용 하고 있는데, AOP DatasourceTransactionManager 를 주석 처리 하니까 에러가 발생하지 않습니다. 2개의 트랜잭션매니저를 사용해서 발생하는 문제 일까요? 그렇다면 JpaTransactionManager 하나만 사용하면 될까요 ?

  2. 영한님 께서 트랜잭션이 시작되면 TransactionManager에서 커넥션을 생성하고 쓰레드로컬에 해당 커넥션을 저장한다고 하셨는데, 2개의 트랜잭션 매니저를 사용해서, A 라는 트랜잭션매니저를 사용하고있는 메서드에서 B라는 트랜잭션매니저를 사용하는 메서드를 호출하면, 2개의 커넥션이 생성되는 것인가요 ?

 

스프링 트랜잭션 트랜잭션매니저 jpa 자바

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 입니다.

JPA와 Mybatis를 같이 사용할 경우, JpaTransactionManager를 사용해야 하는 것은 아닙니다. 하지만, JPA를 사용하는 클래스와 다른 데이터 액세스 기술을 사용하는 클래스를 같은 트랜잭션 내에서 사용할 경우, JpaTransactionManager를 사용하여 트랜잭션을 관리해야 합니다.

또한, DatasourceTransactionManager와 JpaTransactionManager를 같이 사용할 경우, JpaTransactionManager만 사용해도 충분합니다. 두 트랜잭션 매니저를 함께 사용할 경우, 트랜잭션 충돌이 발생할 수 있기 때문입니다.

위에서 언급하신 오류는 2개의 트랜잭션 매니저를 함께 사용했을 때 발생하는 문제입니다. 따라서 JpaTransactionManager 하나만 사용하도록 변경해야 합니다.

감사합니다.

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

5

2

inheritance startegy 선택시 고려사항

0

18

1

Entity 동등성 비교

0

17

1

패키지 구분에 대해 궁금한게 있습니다

0

25

2

스프링부트 서버 에러나요

0

26

1

RepositoryTest의 패키지 위치가 domain인 이유

0

35

2

도메인 모델에서 관계와 규칙을 구분하는 방법

0

45

2

16 강의 메세지 retryCount의 의도

0

26

2

JPA Repository 질문이 있습니다!

1

36

2

페이지네이션 처리를 쿼리에서 하는 방식 질문

1

37

1

UserService, CertificationService 책임 분리 기준 질문

0

28

1

실무 조언 관련 질문입니다.

0

44

1

sdk 설정 오류

0

53

2

H2데이터베이스 파일 생성

0

55

2

SpringBoot 4.X에서의 Querydsl 설정

0

91

2

REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!

0

31

1

오탈자 - @Transactional

0

56

1

Dto와 Entity 사용 관련 질문

0

34

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

52

2

EC2 실습 중 docker-compose / docker ps 실행 시 권한 오류 문의

2

73

1

application.properties 작성 관련 질문

0

49

2

색깔구분

0

47

3

gradlew, java -jar 로 애플리케이션 실행시키기에서

1

50

1

리액트 관련 질문이 있습니다.

0

64

2