我有一个有点工作的Hibernate实例嵌入到我的OSGi上下文中。现在我也想拥有Envers。
从ORM 4.2开始,完全支持Envers。
所以有可能。我只是不确定如何。我尽职尽责地将@Audited
添加到我的一个实体中,但什么也没发生。
我试图将这些监听器添加到我的persistence.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?
(PS。我们不打算使用Eclipse Gemini或Apache Aries,因为我们对它们进行了评估,但它们并不适用于我们的用例。)
我们也有这个问题。尝试这些步骤。
<property name="hibernate.hbm2ddl.auto" value="update"/>
晚到派对,但在这里抛出这个以防其他人需要它:
史蒂文的前两分是现场。 Hibernate bootstrapping在OSGi中看起来与在SE / EE领域中看起来完全不同。我们在JIRA跟踪增强方面有很多票,特别是为了使事情更具动态性并减少启动顺序的脆弱性(Steven绝对正确,hibernate-core,hibernate-envers等目前必须首先在你的捆绑之前启动)。
我们的hibernate-demos项目有一些OSGi快速入门,所有这些都包括Envers设置。这个可能更像你正在寻找的东西:https://github.com/hibernate/hibernate-demos/tree/master/hibernate-orm/osgi/unmanaged-native