Example usage for org.hibernate.envers CrossTypeRevisionChangesReader findEntities

List of usage examples for org.hibernate.envers CrossTypeRevisionChangesReader findEntities

Introduction

In this page you can find the example usage for org.hibernate.envers CrossTypeRevisionChangesReader findEntities.

Prototype

List<Object> findEntities(Number revision) throws IllegalStateException, IllegalArgumentException;

Source Link

Document

Find all entities changed (added, updated and removed) in a given revision.

Usage

From source file:ch.puzzle.itc.mobiliar.business.auditview.control.AuditService.java

License:Open Source License

public List<AuditViewEntry> getAuditViewEntriesForResource(Integer resourceId) {
    // Map<Hashcode, AuditViewEntry>
    Map<Integer, AuditViewEntry> allAuditViewEntries = new HashMap<>();
    AuditReader reader = AuditReaderFactory.get(entityManager);
    CrossTypeRevisionChangesReader crossTypeRevisionChangesReader = reader.getCrossTypeRevisionChangesReader();
    List<MyRevisionEntity> revisionsForResource = getRevisionsForResource(resourceId);
    for (MyRevisionEntity revisionEntity : revisionsForResource) {
        List<Object> changedEntitiesForRevision = crossTypeRevisionChangesReader
                .findEntities(revisionEntity.getId());
        for (Object o : changedEntitiesForRevision) {
            List resultList = reader.createQuery().forRevisionsOfEntity(o.getClass(), false, true)
                    .add(AuditEntity.revisionNumber().eq(revisionEntity.getId())).getResultList();
            createAuditViewEntriesAndAddToMap(allAuditViewEntries, resultList);
        }/*from w w w. j a  v  a  2  s . co m*/
    }
    return new ArrayList<>(allAuditViewEntries.values());
}