配置为合并时如何测试DefaultMergeEventListener

时间:2018-09-19 21:43:50

标签: spring hibernate

我正在从带有Hibernate 3的Spring 3升级到带有Hibernate 5的Spring 4。 在我们的应用程序中,通过以下方式将IdTransferringMergeEventListener与org.springframework.orm.hibernate3.LocalSessionFactoryBean一起使用。

<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    ----
    ----
    <property name="eventListeners">
        <map>
            <entry key="merge">
                <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/>
            </entry>
        </map>
    </property>
</bean>

当我们使用Spring 4和Hibernate 5(带有org.springframework.orm.hibernate5.LocalSessionFactoryBean)时,不支持eventListeners属性。另外,IdTransferringMergeEventListener不存在。当我搜索时,我看到有一条帖子说IdTransferringMergeEventListener已被合并到org.hibernate.event.internal.DefaultMergeEventListener。

这是问题。
1.在Spring 4中,DefaultMergeEventListener是否替换了IdTransferringMergeEventListener?

  1. 如果我使用的是Hibernate 5,是否需要注册此监听器?我听说3中的Spring Listener是为了填补Hibernate旧版本的某些限制。

  2. 在Spring 4中注册此侦听器的最佳方法是什么?

  3. 何时触发合并事件?如果我使用的是HibernateTemplate.save()或saveOrUpdate(),我需要吗?
  4. 在为合并事件配置时,如何测试此侦听器是否按预期工作?有人可以提供任何代码示例吗?

谢谢
塞巴

0 个答案:

没有答案