代码之家  ›  专栏  ›  技术社区  ›  Stefan S.

在OSGi中使用Envers

  •  0
  • Stefan S.  · 技术社区  · 7 年前

    documentation 国家:

    从ORM 4.2开始,Envers完全受支持。

    所以这是可能的。我只是不知道怎么做。我尽职地补充道 @Audited

    我试图将这些听众添加到我的 持久性.xml

     <property name="hibernate.ejb.event.post-insert" value="org.hibernate.ejb.event.EJB3PostInsertEventListener,org.hibernate.envers.event.AuditEventListener" />
     <property name="hibernate.ejb.event.post-update" value="org.hibernate.ejb.event.EJB3PostUpdateEventListener,org.hibernate.envers.event.AuditEventListener" />
     <property name="hibernate.ejb.event.post-delete" value="org.hibernate.ejb.event.EJB3PostDeleteEventListener,org.hibernate.envers.event.AuditEventListener" />
     <property name="hibernate.ejb.event.pre-collection-update" value="org.hibernate.envers.event.AuditEventListener" />
     <property name="hibernate.ejb.event.pre-collection-remove" value="org.hibernate.envers.event.AuditEventListener" />
     <property name="hibernate.ejb.event.post-collection-recreate" value="org.hibernate.envers.event.AuditEventListener" />
    

    它不起作用,因为侦听器类不再存在(我使用的是Hibernate 5.1)。

    如何在OSGi中启用Envers?

    2 回复  |  直到 7 年前
        1
  •  0
  •   Steven Spungin    7 年前

    我们也有这个问题。尝试以下步骤。

    1. 确保您的hibernate捆绑包,尤其是hibernate envers,在实体捆绑包之前启动。

    2. 确保你的坚持。xml文件包含有效条目,例如

    <property name="hibernate.hbm2ddl.auto" value="update"/>

    1. 查找Hibernate DDL错误,例如“无法创建主键”,这可能会干扰注册

    2. 如果引用枚举,请参见我的答案: Classloader Issues with Envers in OSGi

    3. 在EnversIntegrator中放置断点。整合以确保其在不纾困时被调用。

        2
  •  0
  •   Brett Meyer    7 年前

    派对迟到了,但把这个扔到这里,以防其他人需要它:

    必须 当前在捆绑之前首先启动)。

    https://github.com/hibernate/hibernate-demos/tree/master/hibernate-orm/osgi/unmanaged-native