Hibernate EntityInterceptor(EmptyInterceptor):筛选出所有@Transaction(readOnly = TRUE)事务

时间:2018-11-14 18:10:40

标签: spring hibernate

我定义并成功插入了一个捕获所有事务的Hibernate DB Interceptor。

public class HibernateTransactionInterceptor extends EmptyInterceptor {

    @Override
    public void afterTransactionBegin(Transaction tx) {

        System.out.println("Intercepted"); 
        // ...
        super.afterTransactionBegin(tx);        
    }
}

applicationContext.xml:

<bean id="transactionInterceptor" class="myapp.interceptor.HibernateTransactionInterceptor" />

<bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  <!-- Plug into SessionFactory the Interceptor bean define above -->
  <property name="entityInterceptor" ref="transactionInterceptor" />

  ...
</bean>

现在,拦截器会在所有 @Transaction个服务方法上触发。但是我只需要拦截@Transaction(readOnly=FALSE)方法(即,过滤掉所有只读方法)。有没有办法配置它?

0 个答案:

没有答案