0

Looking for Envers documentation here http://docs.jboss.org/envers/docs/index.html#revisions-of-entity

I'm trying to query for revisions (LIST!) where a specific object property is changed. In the documentation example you have a person class with id, name, surname and address.

The paragraph 5.2 show how to find a specific revision where some maximized/minimized condition are satisfied.

I can find all the revision where a specific class instance is changed

auditReader.getRevisions(entityClass, entityName, id);

But this is not a query.

I'm trying to do something like (given entityClass, id and attributeName?):

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

In other words, as hibernate envers documentation, I'm searching all the person revision with one id (= one person), where only the name is changed (address can change in the middle multiple times).

I don't know how exacly write the restriction to the query, to see the change to only one attribute, or how to write the attribute is different from the previous revision of this object.

Thank you

Francesco

Francesco
  • 315
  • 1
  • 3
  • 13
  • ps.: I can get all the revision list, cycle between them, couple by couple (previous and next), where a specific attribute is changed and get only them. But I like to understand if there is any way to do it with the query. – Francesco Nov 27 '12 at 16:52

1 Answers1

1

To query for property changes, you will need to include property change markers for some or all properties of your entities, in the audit entities. This is a feature of a newer version of Envers, present in Hibernate 4.1.

See the docs: http://docs.jboss.org/hibernate/core/4.1/devguide/en-US/html/ch15.html#envers-envers-tracking-properties-changes-queries

adamw
  • 8,038
  • 4
  • 28
  • 32