• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

22.05.08 23:35 작성 조회수 305

0

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

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

 

 

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

22.05.09 18:08

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

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

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

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

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

 

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

감사합니다.