인프런 커뮤니티 질문&답변

!?님의 프로필 이미지
!?

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

트랜잭션 문제 해결 - 트랜잭션 AOP 정리

트랜잭셔널 에노테이션에 대해서 질문이 있습니다.

작성

·

455

0

A 서비스 클래스에서 어떠한 메서드(@Transactional 있음)가 하나의 트랜잭션을 실행하는데 B 서비스 클래스에 있는 UPDATE 메서드를 A 서비스 클래스의 해당 메서드에 넣어서 사용한다고 할때 B서비스 클래스의 UPDATE 메서드에 @Transactional 에노테이션이 붙어있어도 문제가 없을까요?

B 클래스 메서드가 단독으로 트랜잭션을 실행하지 않는다는 무조건적인 보장이 있으면 에노테이션이 없는 것이 맞지만 그것이 아니라면 에노테이션이 있어야 될것 같아서 질문드립니다.

 

 

답변 1

0

안녕하세요, !? 님! 공식 서포터즈 codesweaver 입니다.

트랜잭션 안의 트랜잭션을 질문하신 것 같습니다.

이런 경우를 '트랜잭션 전파'(Transaction Propagation)이라고 합니다.

아래의 링크 중 '전파 타입 7가지 요약'을 참조하시면 자세한 내용을 확인하실 수 있습니다.

스프링 트랜잭션과 트랜잭션 전파

 

상황에 따라 @Transactional( ... propagation = {option}); 전파 타입을 설정하여  사용하시면 됩니다.

감사합니다.

!?님의 프로필 이미지
!?

작성한 질문수

질문하기