0

現在、3.6.9.Final監査リビジョン用の Hibernate Envers を含むすべての Hibernate ライブラリにこのバージョンを使用しています。

4.1.8.Finalバージョンに移行したい(特に を使用するため@Audited(withModifiedFlag = true)) が、Hibernate Enversのみです。残念ながら、うまくいかないようです。エンティティを変更すると@Audited、Envers はリビジョンを保存しません。

多分それはリスナーの定義によるものですか?3.6.9 では、hibernate.propertiesファイルに次のプロパティを設定しました。

hibernate.ejb.event.post-insert=org.hibernate.ejb.event.EJB3PostInsertEventListener,org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.post-update=org.hibernate.ejb.event.EJB3PostUpdateEventListener,org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.post-delete=org.hibernate.ejb.event.EJB3PostDeleteEventListener,org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.pre-collection-update=org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.pre-collection-remove=org.hibernate.envers.event.AuditEventListener
hibernate.ejb.event.post-collection-recreate=org.hibernate.envers.event.AuditEventListener

私の知る限り、Envers のバージョン 4 では、これらの宣言はもう必要ありません。それらがなくてもエラーは発生しませんが、リビジョンは作成されません。これらの宣言を元に戻すことはできません。v3 と v4 の間でクラスが同じではないためです (特にorg.hibernate.envers.event.AuditEventListener、それはもう存在しません)。

それで、それを機能させる方法はありますか?

4

1 に答える 1

0

いいえ、それはできません。Hibernate と Envers の同じバージョンを使用する必要があります。

于 2013-01-07T08:05:05.487 に答える