Hibernate Envers with Spring using HibernateTemplate

I am trying to configure Envers in a Spring environment. Everything works fine when I retrieve a session manually from SessionFactory and put everything in a transaction:

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
TestEntity test = new TestEntity();
test.setTest("REV1");
session.save(test);
tx.commit();
tx = session.beginTransaction();
test.setTest("REV2");
session.save(test);
tx.commit();

The above code inserts data into the TestEntity table, and also updates the AUD- and REVINFO tables.

However, when I update a table using our DAO, nothing happens with tables that depend on Envers. I suspect the reason may be using the HibernateTemplate in the DAO.

HibernateDaoSupport dao;
...
HibernateTemplate hibernateTemplate = dao.getHibernateTemplate();
TestEntity test = new TestEntity();
test.setTest("REV1");
hibernateTemplate.saveOrUpdate(test);
test.setTest("REV2");
hibernateTemplate.saveOrUpdate(test);

My Spring-config for SessionFactory is as follows:

<bean id="test-sessionFactory" class=...>
    <property name="dataSource" ref="test-dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
    <property name="eventListeners">
    <map>
        <entry key="post-insert" value-ref="enversListener" />
        <entry key="post-update" value-ref="enversListener" />
        <entry key="post-delete" value-ref="enversListener" />
        <entry key="pre-collection-update" value-ref="enversListener" />
        <entry key="pre-collection-remove" value-ref="enversListener" />
        <entry key="post-collection-recreate" value-ref="enversListener" />
    </map>
</property>
</bean>

I have read quite a few forum and blog entries, including this one , which is related to frequently asked questions about usage, but nothing mentioned seems to work in my situation.

- , Envers Spring HibernateTemplate ( JPA)? ? /API Hibernate (, Hibernate)? - ?

Spring 3.0.1 Hibernate 3.5.1.

+2
1

, Envers , HibernateTemplate "auto-commit" , Envers .

, Envers. HibernateTemplate , Envers .

. :

+2

All Articles