0

在这里寻找 Envers 文档 http://docs.jboss.org/envers/docs/index.html#revisions-of-entity

我正在尝试查询更改特定对象属性的修订版(LIST!)。在文档示例中,您有一个带有 id、name、surname 和 address 的人员类。

第 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文档,我正在搜索所有具有一个id(=一个人)的人员修订版,其中只有名称被更改(地址可以在中间多次更改)。

我不知道如何将限制写到查询中,看到只有一个属性的更改,或者如何写属性与该对象的先前版本不同。

谢谢

弗朗切斯科

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 回答