Contents
Transactional 전파 전략Transactional 전파 전략
1. Propagation.REQUIRED
(기본 전략)
현재 진행 중인 트랜잭션이 있으면 해당 트랜잭션에 참여하고, 없으면 새로운 트랜잭션을 시작합니다.
2. Propagation.REQUIRES_NEW
★★
:항상 새로운 트랜잭션을 시작하고, 현재 진행 중인 트랜잭션 (있는 경우)은 일시 중단합니다.
3. Propagation.SUPPORTS
현재 진행 중인 트랜잭션이 있으면 해당 트랜잭션에 참여하고, 없으면 트랜잭션 없이 실행됩니다.
4. Propagation.MANDATORY
현재 진행 중인 트랜잭션이 있으면 해당 트랜잭션에 참여하며, 없으면 예외가 발생합니다 (IllegalTransactionStateException).
5. Propagation.NEVER
★★
트랜잭션이 없어야 메소드를 실행하며, 현재 진행 중인 트랜잭션이 있으면 예외가 발생합니다 (IllegalTransactionStateException).
6. Propagation.NOT_SUPPORTED
현재 진행 중인 트랜잭션이 있으면 일시 중단하고, 트랜잭션 없이 메소드를 실행합니다.
7. Propagation.NESTED
현재 진행 중인 트랜잭션이 있으면 중첩 트랜잭션을 시작하며, 없으면
Propagation.REQUIRED
와 동일하게 동작합니다.
중첩 트랜잭션은 하나의 큰 트랜잭션에 속하지만, 부분적으로 커밋 또는 롤백이 가능합니다.
중첩 트랜잭션이 롤백되면, 외부 트랜잭션은 계속 진행됩니다.Share article