inflearn logo
강의

Course

Instructor

Spring DB Part 1 - Core Principles of Data Access

DatasourceManager와 JpaTransactionManager 혼용

562

nkiaitg011240

1 asked

0

안녕하세요 강의를 듣다가 궁금한것이 생겨서 질문 남깁니다.

강의 중간에 영한님께서, DatasourceManager와 JpaTransactionManager 를 함께 사용 하는 경우, JpaTransactionManager를 등록한다고 하셨고 그 이유에 대해서는 JpaTransactionManager가 DatasourceTransactionManager가 제공하는 기능의 대부분을 지원한다고 하셨습니다.

현재 개발 중인 프로젝트에서 myBatis와 JPA 두 가지를 사용하고 있어서 위 두 개의 트랜잭션 매니저를 사용 하고 있는데, 각 다른 트랜잭션 이 서로 호출하게 되면 Transaction Conflict 라는 에러가 발생해서 현재 말씀하셨던것 처럼 JpaTransactionManager 하나로 사용하려 합니다.

영한님께서는 대부분의 기능을 지원 한다고 하셨는데, 그렇다면 혹시 그 일부 지원하지 않는 기능에는 예를 들어 어떤 것들이 있을 수 있고, 혹시 발생 가능성이 있는 잠재적인 이슈가 있는지 궁금해서 질문을 남깁니다.

감사합니다

 

spring 트랜잭션 transaction 스프링

Answer 2

0

yh

안녕하세요. 태희님

제가 사용한 경험에서는 특별한 이슈를 겪은 적은 없습니다.

감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요. JPA에서 제공하는 JpaTransactionManager는 대부분의 기능을 지원하지만, 일부 제한된 기능도 있을 수 있습니다.

JpaTransactionManager의 일반적인 사용 방법은 JPA와 함께 사용되는 경우입니다. 하지만 MyBatis와 JPA를 함께 사용하는 경우에는 JpaTransactionManager만으로는 MyBatis의 트랜잭션을 관리할 수 없습니다.

MyBatis와 JPA를 함께 사용하는 경우, DatasourceTransactionManager를 사용하여 MyBatis의 트랜잭션을 관리하고, JpaTransactionManager를 사용하여 JPA의 트랜잭션을 관리하는 것이 일반적입니다. 이렇게 두 개의 트랜잭션 매니저를 혼용하는 것이 일반적인 방법이며, 이를 통해 각각의 트랜잭션이 서로 다른 데이터베이스 연결을 사용할 수 있게 됩니다.

따라서, MyBatis와 JPA를 함께 사용하는 경우에는 DatasourceTransactionManager와 JpaTransactionManager를 함께 사용하는 것이 권장되며, 위에서 언급한 Transaction Conflict 에러를 피할 수 있게 됩니다.

JpaTransactionManager는 JPA를 위해 특별히 설계된 트랜잭션 매니저이므로 MyBatis의 일부 기능을 직접 지원하지 않을 수 있습니다. 그렇기 때문에 MyBatis의 특정 기능을 사용해야 할 때는 DatasourceTransactionManager를 사용해야 합니다.

잠재적인 이슈나 발생 가능성은 프로젝트 구조와 사용하는 기술에 따라 다를 수 있으므로 정확한 예시를 드리기는 어렵습니다. 그러나 일반적으로 MyBatis와 JPA를 함께 사용하는 경우, DatasourceTransactionManager와 JpaTransactionManager를 혼용하여 각각의 트랜잭션을 분리해서 관리하는 것이 좋습니다.

더 자세한 내용이 필요하시다면, 프로젝트 구조나 사용하는 기술에 대해 구체적으로 설명해주시면 더 도움을 드릴 수 있을 것입니다. 감사합니다.

spring initialiser 어떤걸 선택해야될지 모르겠어요

0

27

2

트랜잭션 템플릿이 체크예외는 커밋하는 이유가 궁금합니다.

0

49

1

jdbc 학습하다 궁금해서 질문드려요

0

80

1

정상이체와 이체중 예외발생 차이

0

68

2

이번 강의부터가 JDBC 직접 사용 맞나요?

0

86

1

순수한 서비스 계층에 대한 의문???

0

82

2

3_4test, 4test 자동 리소스 안됨

0

58

2

데이터베이스 선택 관련 질문.

0

68

2

after 메서드 사용 유무

0

56

2

데이터베이스 접근 및 DB 락

0

52

1

@SpingBootTest, @TestConfiguration

0

55

1

Read Committed 격리 수준 사용 관련 질문

0

48

1

AopCheck Test 부분의 EnhancerBySpring 확인 법??

0

66

2

커리큘럼 관련 질문

0

76

1

서비서 계층 스프링 프레임워크 사용

0

87

1

validation(toMember)의 위치

0

83

2

데이터 계층에서 서비스 로직의 datasource를 인식하는 방법

0

165

2

member 상수 질문

0

120

2

ctrl + F6 이후로 con 인식이 안 됩니다

0

153

2

DrivenManager 와 Connection 반환에 대한 질문입니다!

0

108

1

섹션5 트랜잭션 템플릿관련 질문(이기종 DB)

0

116

1

세션1 테이블 조회결과 그림은 Redo 로그에 속하나요?

0

94

1

트랜잭션이 필요하지 않은 경우 DB 대신 파일 시스템을 사용하는 것이 더 효율적인가?

0

95

1

강의 14분쯤 Exception 질문

0

111

2