org.hibernate.ejb.event.EJB3MergeEventListener 从 Hibernate 3 升级到 4.3.9 后丢失

org.hibernate.ejb.event.EJB3MergeEventListener missing after upgrading from Hibernate 3 to 4.3.9

我正在尝试从 Hibernate 3.6.10 升级到 4.3.9(以及 JPA 2.0 到 2.1)。

我的应用程序中的一些代码使用了 org.hibernate.ejb.event.EJB3MergeEventListener class,它曾经在 hibernate-entitymanager jar 中,但在 4.3.9 版本中丢失了。据我所知,它从 4.3 开始被删除,但我找不到任何关于为什么会这样或我应该如何解决它的信息。我想也许它被转移到了另一个罐子或包裹中(和许多其他 classes 一样)但我无法在任何地方找到它。

编辑:根据 Hibernate user documentation,这个 class 应该包含在版本 4.3 中。

我猜你需要添加 hibernate-entitymanager.jar。你可以找到这个罐子 here

看起来这个 class(以及许多其他 EJB 内容)已重命名并四处移动。我能够将 org.hibernate.ejb.event.EJB3MergeEventListener 的实例(位于 3.6.10 版的 hibernate-entitymanager jar 中)替换为 org.hibernate.event.internal.DefaultMergeEventListener (实际上位于 4.3.9 版的 hibernate-core jar 中) ),并且有效。

但是,class 仍然列在旧 name/package 下的 Hibernate 4.3 文档中。