inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

962

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 하나만 사용하도록 변경해야 합니다.

감사합니다.

서비스에서와 컨트롤러의 @Vaild 적용 차이에 대해서

0

48

2

해결했습니다

0

38

1

지금 강의가 어려우신분 추천드립니다.

0

54

1

기존의 완성된 CRUD의 Build.gradle에 security관련 dependency를 추가하면 문제가 생깁니다.

0

65

2

EmailSender 관련 문의

0

55

1

CRA ? 질문입니다

0

51

1

[해결됨]마지막 강의 내용 수정 화면이 기능을 못하네요.

0

52

1

[해결됨]부분적으로 화면 이동이 안되는 부분이 있습니다.

0

85

6

aws 계정 생성 질문

1

72

1

조회 메서드 네이밍 질문

0

67

1

음성불량

0

51

1

장애 격리 관련해서 궁금한 부분이 있어요

0

62

2

질문있습니다.

0

52

1

코드 깃허브는 없을까요?

1

69

2

핵사고날 아키텍처 기반으로 멀티 모듈 설계 시 질문드립니다..

0

76

2

인넬리제이 무료버전

0

68

2

Post, PostEntity에서 User, UserEntity 의존

0

63

1

내부 객체 직접 접근에 관하여.

0

106

2

CertificationServiceTest

0

59

1

FlushModeType.COMMIT (12:45) 예시코드 질문

0

68

1

readme에 대한 자료는 따로 받아볼수 있나요?

0

101

2

InvalidCurriculumException DIP 적용 여부 문의

0

81

2

Inner class로 Config를 지정하는 이유

0

63

2

Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.

0

109

2