✏️ 필요성
- transactional 은 기본적으로 중첩이 될경우 상위에 흡수되도록 설정되어있다.
- 상황에 따라서 기본값을 수정하면 더 유동적으로 transactional 을 사용할 수 있다.
✏️ 전파 옵션의 종류
📍 REQUIRED
- 기본값으로 트랜잭션이 없으면 새롭게 시작하고,
있다면 기존 트랜잭션을 사용하는 옵션
@Transactional(propagation = Propagation.REQUIRED)
📍 REQUIRES_NEW
- 트랜잭션이 존재하더라도 새로운 트랜잭션을 시작해 외부와 독립적으로 동작
@Transactional(propagation = Propagation.REQUIRES_NEW)
📍 SUPPORTS
- 트랜잭션이 존재하면 기존 트랜잭션을 사용하고,
없다면 트랜잭션 없이 동작
📍 NOT_SUPPORTED
📍 NEVER
📍 MANDATORY