Transactional 전파 옵션

알파로그·2023년 11월 1일
0

Spring Boot

목록 보기
51/57

✏️ 필요성

  • transactional 은 기본적으로 중첩이 될경우 상위에 흡수되도록 설정되어있다.
  • 상황에 따라서 기본값을 수정하면 더 유동적으로 transactional 을 사용할 수 있다.

✏️ 전파 옵션의 종류

📍 REQUIRED

  • 기본값으로 트랜잭션이 없으면 새롭게 시작하고,
    있다면 기존 트랜잭션을 사용하는 옵션
@Transactional(propagation = Propagation.REQUIRED)

📍 REQUIRES_NEW

  • 트랜잭션이 존재하더라도 새로운 트랜잭션을 시작해 외부와 독립적으로 동작
@Transactional(propagation = Propagation.REQUIRES_NEW)

📍 SUPPORTS

  • 트랜잭션이 존재하면 기존 트랜잭션을 사용하고,
    없다면 트랜잭션 없이 동작

📍 NOT_SUPPORTED

  • 트랜잭션 없이 동작
    • 만약 트랜잭션이 존재한다면 일시 중지됨

📍 NEVER

  • 트랜잭션이 존재할경우 예외를 던짐

📍 MANDATORY

  • 호출한 쪽에서 꼭 트랜잭션이 있어야 함
    • 없다면 예외를 던짐
profile
잘못된 내용 PR 환영

0개의 댓글