注册一个保存/更新休眠事件监听器

时间:2018-11-16 15:19:13

标签: spring hibernate

我需要拦截Hibernate应用程序中的所有保存/更新/删除操作。

我从 Interceptor 方法开始,但是Hibernate的Interceptor不能捕获HQL(例如HQL executeUpdate,请参见此处Hibernate Interceptor/Listeners for HQL)。

因此,为了获得更全面的解决方案,我决定使用事件监听器(尤其是SaveOrUpdateEventListener)。

但是如何在Hibernate XML中注册以下事件监听器?这是一个较旧的应用程序,它不使用配置程序注释,所有内容都基于XML。我需要这个自定义的SaveOrUpdate事件监听器才能在每次保存或更新时触发。

public class HibernateSaveUpdateEventListener extends DefaultSaveOrUpdateEventListener {

    @Override
    public void onSaveOrUpdate(SaveOrUpdateEvent event) throws HibernateException {

        logger.info("Intercepted EventLister's onSaveOrUpdate");
        super.onSaveOrUpdate(event);

    }
}

休眠XML:

<!-- Define the sessionFactory -->
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>

    <!--NEED TO PLUG IN MY EVENT LISTENER HERE, how to do it? -->
    <!--............-->

    <property name="hibernateProperties">
       <props>
         ...

使用:休眠4.3.8,春季4.1.5

0 个答案:

没有答案