org.springframework.transaction.support.TransactionSynchronizationManager 이용
해당 클래스를 이용하면 현재 트랜잭션 이름과 실행된 메소드가 트랜잭션에 참여중인지 여부를 확인할 수 있다.
// 트랜잭션의 이름을 확인한다.
// {패키지명까지 포함된 클래스이름}.{메서드이름} 으로 구성되어 있다.
// ex: com.hello.user.login
TransactionSynchronizationManager.getCurrentTransactionName();
// 실행된 메소드가 트랜잭션에 참여 중인지를 확인한다.
// boolean 반환
TransactionSynchronizationManager.isActualTransactionActive();
org.springframework.transaction.interceptor.TransactionAspectSupport 이용
해당 클래스를 이용하면 현재 트랜잭션의 여러가지 상태를 확인할 수 있다.
// 현재 트랜잭션의 상태를 얻어낼 수 있다.
TransactionStatus transactionStatus = TransactionAspectSupport.currentTransactionStatus();
// 현재 트랜잭션이 새로 시작하는 트랜잭션인지를 확인할 수 있다.
transactionStatus.isNewTransaction();
// 현재 트랜잭션이 rollbackOnly인지 알 수 있다.
transactionStatus.isRollbackOnly();
application.yml의 설정값 이용
로깅 레벨을 설정해주면 트랜잭션을 관리할 때 발생하는 로그가 상세하게 기록된다.
logging:
level:
org:
springframework:
transaction:
interceptor: TRACE
orm:
jpa: DEBUG
댓글