Example usage for org.hibernate.envers AuditReader findRevision

List of usage examples for org.hibernate.envers AuditReader findRevision

Introduction

In this page you can find the example usage for org.hibernate.envers AuditReader findRevision.

Prototype

<T> T findRevision(Class<T> revisionEntityClass, Number revision)
        throws IllegalArgumentException, RevisionDoesNotExistException, IllegalStateException;

Source Link

Document

A helper method; should be used only if a custom revision entity is used.

Usage

From source file:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java

License:Apache License

@SuppressWarnings("unchecked")
public Revision<N, T> findLastChangeRevision(ID id) {

    Class<T> type = entityInformation.getJavaType();
    AuditReader reader = AuditReaderFactory.get(entityManager);

    List<Number> revisions = reader.getRevisions(type, id);

    if (revisions.isEmpty()) {
        return null;
    }// w  w w .  j  a v a2s . c o m

    N latestRevision = (N) revisions.get(revisions.size() - 1);

    Class<?> revisionEntityClass = revisionEntityInformation.getRevisionEntityClass();

    Object revisionEntity = reader.findRevision(revisionEntityClass, latestRevision);
    RevisionMetadata<N> metadata = (RevisionMetadata<N>) getRevisionMetadata(revisionEntity);
    return new Revision<N, T>(metadata, reader.find(type, id, latestRevision));
}

From source file:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java

License:Apache License

@SuppressWarnings("unchecked")
private Revision<N, T> getEntityForRevision(N revisionNumber, ID id, AuditReader reader) {

    Class<?> type = revisionEntityInformation.getRevisionEntityClass();

    T revision = (T) reader.findRevision(type, revisionNumber);
    Object entity = reader.find(entityInformation.getJavaType(), id, revisionNumber);

    return new Revision<N, T>((RevisionMetadata<N>) getRevisionMetadata(revision), (T) entity);
}

From source file:de.rs.scrumit.dao.BaseEntityAuditDao.java

License:Open Source License

@Transactional(readOnly = true)
public <T extends BaseEntityAuditModel> T getByRevision(Class<T> modelClass, Number revision) {
    AuditReader reader = AuditReaderFactory.get(entityManager);
    T model = reader.findRevision(modelClass, revision);
    return model;
}

From source file:pl.konczak.mystartupapp.sharedkernel.enversRepository.EnversRevisionRepositoryImpl.java

License:Apache License

/**
 * Returns an entity in the given revision for the given entity-id.
 *
 * @param revisionNumber//from  ww  w .  j av  a2 s  .co m
 * @param id
 * @param reader
 * @return
 */
@SuppressWarnings("unchecked")
private Revision<N, T> getEntityForRevision(N revisionNumber, ID id, AuditReader reader) {

    Class<?> type = revisionEntityInformation.getRevisionEntityClass();

    T revision = (T) reader.findRevision(type, revisionNumber);
    Object entity = reader.find(entityInformation.getJavaType(), id, revisionNumber);

    return new Revision<N, T>((RevisionMetadata<N>) getRevisionMetadata(revision), (T) entity);
}