본문 바로가기
Framework/Spring

[Spring] 트랜잭션 전파 규칙 (Transaction Propagation Behaviors)

by pcm9881 2023. 4. 21.

@Transactional

Spring에서 해당 메서드(method)를 하나의 트랜잭션(Transaction)으로 진행하는 애노테이션(Annotation)입니다.

 

전파 규칙 (Propagation Behaviors)

7가지 전파 규칙이 있고 여기서 기존 트랜잭션이 있거나 없는 경우 다 다르게 작동합니다.

 

 전파 규칙  설명
 MANDATORY  현재 트랜잭션을 지원하고, 존재하지 않으면 예외를
 발생시킵니다.
 NESTED  현재 트랜잭션이 있는 경우 중첩된 트랜잭션 내에서 실행하고
 REQUIRED그렇지 않은 경우와 같이 동작합니다.
 NEVER  트랜잭션이 아닌 방식으로 실행하고 트랜잭션이 있으면 예외를
 발생시킵니다.
 NOT_SUPPORTED  트랜잭션이 아닌 방식으로 실행하고 현재 트랜잭션이
 있는 경우 일시 중단합니다.
 REQUIRED
 현재 트랜잭션을 지원하고 존재하지 않는 경우 새 트랜잭션을
 만듭니다.
 REQUIRES_NEW  새 트랜잭션을 생성하고 현재 트랜잭션이 있으면
 일시 중지합니다.
 SUPPORTS  현재 트랜잭션을 지원하고 트랜잭션이 없으면 트랜잭션이 아닌
 방식으로 실행합니다.

 

참조

[Spring document transaction annotation]: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/annotation/Propagation.html

728x90

댓글