3
RuntimeExceptions이 발생할 때 트랜잭션 관리자 내의 기본 롤백 정책이 자동 롤백된다는 것을 알고 있습니다. 하지만 전파 할 수있는 확인 된 예외가 있으면 어떻게됩니까?확인 된 예외가 트랜잭션 내에서 전파되면 어떻게됩니까?
RuntimeExceptions이 발생할 때 트랜잭션 관리자 내의 기본 롤백 정책이 자동 롤백된다는 것을 알고 있습니다. 하지만 전파 할 수있는 확인 된 예외가 있으면 어떻게됩니까?확인 된 예외가 트랜잭션 내에서 전파되면 어떻게됩니까?
, Spring은 트랜잭션을 커밋합니다.그러나, Spring 프레임 워크의 트랜잭션 인프라 코드가 기본적으로 만 런타임의 경우 롤백을 위해 트랜잭션을 표시합니다 점에 유의하시기 바랍니다, 체크되지 않은 예외; 즉, throw 된 예외는 RuntimeException의 인스턴스 또는 서브 클래스입니다. (오류는 기본적으로 롤백이됩니다.) 트랜잭션 방식에서 발생하는 예외는 롤백중인 트랜잭션에서 이되지 않습니다. 모든 것이 괜찮 것처럼 확인 예외가 발생하더라도
AnyCheckedException
가 발생하는 경우
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="get*" read-only="false" rollback-for="AnyCheckedException"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
처럼
는 롤백을 수행합니다.
도움이 될만한 사람 : Spring transaction management with checked and unchecked exception