작성
·
157
0
강사님, 안녕하세요. 트랜잭션 전파 관련 질문이 있습니다.
@Transactional(REQUIRES_NEW)를 가진 A함수에서 @Transactional(REQUIRES_NEW)를 가진 (외부에 있는) B함수를 호출할 때에도 강의의 예시(@Transactional을 가진 함수에서 @Transactional(REQUIRES_NEW)를 가진 함수 호출)와 같은 논리로 작동한다고 봐도 될까요?
예를 들어 X함수 -> A함수 -> B함수 순으로 호출한다고 할 때,
X 함수가 @Transactional (default값, REQUIRED)를 가지고 있고
A, B 함수가 @Transactional(REQUIRES_NEW)를 가지고 있다면
X 함수와 A 함수가 각각 별도의 물리 트랜잭션을 가지고 있는 것처럼 A 함수, B 함수도 X와 A의 관계처럼 서로 별도의 물리 트랜잭션을 가지고 있다고 판단할 수 있을까요? 만약 그렇다면 X -> A / A -> B 이렇게 관계를 따로따로 생각을 하는 것이 맞을까요?
로그를 찍어봤을 때 B 함수에서 롤백이 일어나도 A 함수의 데이터에는 영향을 주지 않고, A ~ X의 관계도 그러한 것으로 보이는데 이론적으로도 맞는 것인지 확인하고 싶습니다.