뭐요

스프링 : @Transactional의 기본 적용 범위 본문

Spring

스프링 : @Transactional의 기본 적용 범위

욕심만 많은 사람 2023. 5. 5. 23:37

스프링에서는 transaction에 대한 roll back 처리를 위해 @Transactional을 사용합니다. 해당 Annotation은 메소드 혹은 클래스에 다음처럼 사용할 수 있습니다.

@Transactional
public class transactionalTestClass{
	...
}
@Transactional
public void transactionalTestMethod() {
	...
}

@Transactional의 기본 적용 범위

@Transactional 에는 다양한 option을 붙일 수 있는데, 아무 옵션 없이 해당 Annotation을 붙이면 Unchecked ExceptionError 만을 roll back 처리 해줍니다.

Spring FrameWork 공식문서 참조

💡
Attribute Semantics If no custom rollback rules are configured in this annotation, the transaction will roll back on RuntimeException and Error but not on checked exceptions. … 중략

(Checked Exception과 Unchecked Exception에 대해 잘 모른다면 여기를 확인해보세요)

따라서 Checked Exception을 포함한 모든 예외에 대해서 roll back을 진행하려면 다음과 같이 옵션을 부여하면 됩니다

@Transactional(rollbackFor=Exception.class)


Reference.

Spring Framework Documentation