Я определил и успешно подключил перехватчик Hibernate DB, который перехватывает все транзакции.
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)
методы (т.е. отфильтровать все методы только для чтения). Есть ли способ настроить это?