2016-12-24 3 views
1

@Transactional을 서비스 계층에 사용하는 경우 PlatformTransactionManager에 의해 생성 된 TransactionStatus 인스턴스에 대한 참조를 가져 오는 옵션이 있습니까? 다음 코드 예를 들어Spring - Transactional 메서드에서 TransactionStatus 개체에 대한 참조를 얻는 방법

:

@Transactional 
public void updateCustomer(...) { 
    // do some business stuff 
    // can we get here a reference to the TransactionStatus instance ? 
} 
+0

을? 나는 TransactionStatus를 수동으로 설정하거나 질의 할 필요없이 수년간 트랜잭션 스프링 코드를 작성해왔다. – meriton

답변

4
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus(); 

currentTransactionStatus 방법은 현재 메소드 호출의 트랜잭션 상태를 반환합니다.

당신이 거래의 결과에 관심이 있다면, 당신은 편리한 afterCompletion(int status) 콜백 제공 TransactionSynchronizationAdapter 고려할 수있다 : 당신이 그것을 필요로하는 일

class AfterCompletionTransactionHandler 
     extends TransactionSynchronizationAdapter { 

    public @Override void afterCompletion(int status) { ... } 

}