Whiteship's Note

9.5.3. Rolling back

Spring/Chapter 9 : 2007.04.12 15:21


특정 Exception이 발생 했을 때 롤백하도록 설정하는 방법도 역시 선언적인 방법과 프로그래밍을 통한 방법이 있습니다.

선언적인 방법은 다음과 같이 rollback-for 속성을 사용하여 설정할 수 있습니다.
<tx:advice id="txAdvice" transaction-manager="txManager">
  <tx:attributes>
     <tx:method name="get*" read-only="false" rollback-for="NoProductInStockException"/>
     <tx:method name="*"/>
  </tx:attributes>
</tx:advice>

프로그래밍을 통한 방법은 다음과 같이 할 수 있습니다.
public void resolvePosition() {
    try {
        // some business logic...
    } catch (NoProductInStockException ex) {
        // trigger rollback programmatically
        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
    }
}

하지만 Spring 프레임워크 코드에 종속성이 생기게 되며, Spring 코드가 침략하게 됩니다. 따라서 선언적인 방법을 사용하는 것을 권장합니다.
top

Write a comment.




: 1 : ··· : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : ··· : 24 :