0

ここでEnversのドキュメントを探しています http://docs.jboss.org/envers/docs/index.html#revisions-of-entity

特定のオブジェクトプロパティが変更されたリビジョン(LIST!)をクエリしようとしています。ドキュメントの例では、id、name、surname、addressのpersonクラスがあります。

5.2項は、最大化/最小化された条件が満たされる特定のリビジョンを見つける方法を示しています。

特定のクラスインスタンスが変更されたすべてのリビジョンを見つけることができます

auditReader.getRevisions(entityClass, entityName, id);

しかし、これはクエリではありません。

私は次のようなことをしようとしています(entityClass、id、attributeNameを指定しますか?):

auditReader.createQuery().forRevisionsOfEntity(entityClass, false, true)
.add(AuditEntity.id().eq(id))
.add(AuditEntity.property(attributeName).ne(AuditEntity.GETPREVIOUS?().property(attributeName)))

言い換えると、Hibernate Enversのドキュメントとして、名前のみが変更された1つのID(= 1人)ですべての人物リビジョンを検索しています(住所は途中で複数回変更される可能性があります)。

クエリに制限を正確に書き込む方法、1つの属性のみへの変更を確認する方法、または属性を書き込む方法がこのオブジェクトの以前のリビジョンと異なる方法がわかりません。

ありがとうございました

フランチェスコ

4

1 に答える 1

1

プロパティの変更を照会するには、エンティティの一部またはすべてのプロパティのプロパティ変更マーカーを監査エンティティに含める必要があります。これは、Hibernate 4.1 に含まれる新しいバージョンの Envers の機能です。

ドキュメントを参照してください: http://docs.jboss.org/hibernate/core/4.1/devguide/en-US/html/ch15.html#envers-envers-tracking-properties-changes-queries

于 2012-11-28T08:25:53.547 に答える