Propagation in @Transactional Annotation




• 스프링 프레임워크는 @Transactional 애너테이션을 통해 트랜잭션 원자성을 보장하며, 전파 타입(propagation type) 속성을 통해 메소드 단위 트랜잭션들의 연결과 끊음을 결정할 수 있다.
• 트랜잭션 전파 타입에는 REQUIRED, SUPPORTS, MANDATORY, REQUIRES_NEW, NOT_SUPPORTED, NEVER, NESTED 등이 있으며, 각각의 동작 방식은 기존에 시작된 트랜잭션이 있는지 없는지 여부에 따라 다르다.
• 트랜잭션 전파 타입에 따른 동작 방식을 이해하기 위해 JpaRepository 인터페이스를 사용하여 테스트 코드를 작성하였습니다.
• REQUIRED 전파 타입의 경우, 현재 트랜잭션을 유지하며 진행 중인 트랜잭션이 없으면 새로 만들고, 자식 트랜잭션에서 예외가 발생하면 부모 트랜잭션까지 롤백됩니다.

북마크
공유하기
신고하기