Example usage for org.hibernate.envers AuditReaderFactory get

List of usage examples for org.hibernate.envers AuditReaderFactory get

Introduction

In this page you can find the example usage for org.hibernate.envers AuditReaderFactory get.

Prototype

public static AuditReader get(EntityManager entityManager) throws AuditException 

Source Link

Document

Create an audit reader associated with an open entity manager.

Usage

From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java

License:Open Source License

/**
 * @return Returns a collection of revisions
 *//*from   w  w  w  .  j  a  v  a2 s .c  om*/
public static <T extends AuditedEntity> Map<Number, T> getRevisionEntities(final EntityManager entityManager,
        final Class<T> entityClass, final Integer id) {
    final AuditReader reader = AuditReaderFactory.get(entityManager);
    final List<Number> revisions = reader.getRevisions(entityClass, id);
    Collections.sort(revisions, Collections.reverseOrder());

    /* Use a LinkedHashMap to preserver the order */
    final Map<Number, T> retValue = new LinkedHashMap<Number, T>();
    for (final Number revision : revisions)
        retValue.put(revision, getRevision(reader, entityClass, id, revision, false));

    return retValue;
}

From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java

License:Open Source License

/**
 * @return Returns the list of revision numbers for this entity, as maintained by Envers
 *///from   ww w.  j a  va 2 s .  c  o m
public static <T extends AuditedEntity> List<Number> getRevisions(final EntityManager entityManager,
        final Class<T> entityClass, final Number id) {
    final AuditReader reader = AuditReaderFactory.get(entityManager);
    final List<Number> retValue = reader.getRevisions(entityClass, id);
    Collections.sort(retValue, Collections.reverseOrder());
    return retValue;
}

From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java

License:Open Source License

/**
 * @param entityManager//from  ww  w  .  ja  v  a  2  s  .co  m
 * @param revision
 * @return
 */
public static <T extends AuditedEntity> T getRevision(final EntityManager entityManager, final T entity,
        final Number revision) {
    final AuditReader reader = AuditReaderFactory.get(entityManager);
    return getRevision(reader, (Class<T>) entity.getClass(), entity.getId(), revision, true);
}

From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java

License:Open Source License

/**
 * @param entityManager//from   w  w  w .jav a2  s .  c o m
 * @param revision
 * @return
 */
public static <T extends AuditedEntity> T getRevision(final EntityManager entityManager,
        final Class<T> entityClass, final Integer id, final Number revision) {
    final AuditReader reader = AuditReaderFactory.get(entityManager);
    return getRevision(reader, entityClass, id, revision, true);
}

From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java

License:Open Source License

public static <T extends AuditedEntity> Number getLatestRevision(final EntityManager entityManager,
        final Class<T> entityClass, final Integer id) {
    final AuditReader reader = AuditReaderFactory.get(entityManager);
    final List<Number> retValue = reader.getRevisions(entityClass, id);
    Collections.sort(retValue, Collections.reverseOrder());
    return retValue.size() != 0 ? retValue.get(0) : -1;
}

From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java

License:Open Source License

public static <T extends AuditedEntity> Number getClosestRevision(final EntityManager entityManager,
        final Class<T> entityClass, final Integer id, final Number revision) {
    final AuditReader reader = AuditReaderFactory.get(entityManager);
    return getClosestRevision(reader, entityClass, id, revision);
}

From source file:org.opens.tanaguru.entity.dao.audit.ProcessResultDAOImpl.java

License:Open Source License

@Override
public List<DefiniteResult> getHistoryChanges(ProcessResult processResultImpl) {

    List<DefiniteResult> history = new ArrayList<DefiniteResult>();
    AuditReader auditReader = AuditReaderFactory.get(this.entityManager);
    Long id = processResultImpl.getId();
    if (id == null) {
        return new ArrayList<DefiniteResult>();
    }/*from   w w  w.  j a v a 2s . c o m*/
    List<Number> revisions = auditReader.getRevisions(processResultImpl.getClass(), id);
    DefiniteResult find = null;
    for (int i = 0; i < revisions.size(); i++) {
        Number revision = revisions.get(i);
        find = auditReader.find(DefiniteResultImpl.class, id, revision);
        history.add(find);
    }

    return history;

}

From source file:org.springframework.data.envers.repository.support.EnversRevisionRepositoryImpl.java

License:Apache License

@SuppressWarnings("unchecked")
public Revisions<N, T> findRevisions(ID id) {

    Class<T> type = entityInformation.getJavaType();
    AuditReader reader = AuditReaderFactory.get(entityManager);
    List<? extends Number> revisionNumbers = reader.getRevisions(type, id);
    return revisionNumbers.isEmpty() ? new Revisions<N, T>(Collections.EMPTY_LIST)
            : getEntitiesForRevisions((List<N>) revisionNumbers, id, reader);
}

From source file:org.tomitribe.tribestream.registryng.repository.Repository.java

License:Apache License

public OpenApiDocument findByApplicationIdAndRevision(final String applicationid, final int revision) {
    AuditReader auditReader = AuditReaderFactory.get(em);
    OpenApiDocument openApiDocument = auditReader.find(OpenApiDocument.class, applicationid, revision);

    // Resolve the references here, because the Resource implementation will not be able to do that because
    // it is running another transaction
    for (Endpoint endpoint : openApiDocument.getEndpoints()) {
        endpoint.getDocument();//from   w w w .  j  a v a2s. c o m
    }

    return openApiDocument;
}

From source file:org.tomitribe.tribestream.registryng.repository.Repository.java

License:Apache License

public <T> List<HistoryEntry<T>> getRevisions(final Class<T> entityClass, final String id, final int first,
        final int pageSize) throws NoResultException {
    AuditReader auditReader = AuditReaderFactory.get(em);
    AuditQuery query = auditReader.createQuery().forRevisionsOfEntity(entityClass, false, true);
    query.add(AuditEntity.id().eq(id));/*from  w  ww  .  ja va  2  s. com*/
    query.addOrder(AuditEntity.revisionNumber().desc());
    query.setFirstResult(first).setMaxResults(pageSize);

    List<Object[]> objects = query.getResultList();
    return objects.stream().map(HistoryEntry<T>::new).collect(toList());
}