Spring hibernate , how to call some method after transaction commit or transaction rollback

前端 未结 3 1826
心在旅途
心在旅途 2020-12-05 19:59

I need to call some method after transaction succes or rollback. I am using as

    

        
3条回答
  •  孤城傲影
    2020-12-05 20:08

    • From Hibernate, you could extends EmptyInterceptor and override afterTransactionCompletion() method and register it in SessionFactoryBean or HibernateTransactionManager.

    • From Spring you could extends TransactionSynchronizationAdapter and override afterCompletion() and register when appropriate with TransactionSynchronizationManager#registerSynchronization().

    Edit

    An Example of using Spring Aop to add a synchronization to all methods annotated with @Transactional

    @Aspect
    class TransactionAspect extends TransactionSynchronizationAdapter {
    
        @Before("@annotation(org.springframework.transaction.annotation.Transactional)")
        public void registerTransactionSyncrhonization() {
            TransactionSynchronizationManager.registerSynchronization(this);
    
        }
    
        @Override
        public void afterCompletion(int status) {
            // code 
        }
    }
    

提交回复
热议问题