Example usage for org.hibernate.envers AuditReader getRevisions

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

Introduction

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

Prototype

List<Number> getRevisions(Class<?> cls, Object primaryKey)
        throws IllegalArgumentException, NotAuditedException, IllegalStateException;

Source Link

Document

Get a list of revision numbers, at which an entity was modified.

Usage

From source file:br.com.munif.bereja.repositorio.Repositorio.java

public List<RevisaoEObjeto> listaVersoes(Long id) {
    List<RevisaoEObjeto> aRetornar = new ArrayList<>();
    AuditReader auditReader = AuditReaderFactory.get(Persistencia.getInstancia().getEntityManager());
    List<Number> revisoes = auditReader.getRevisions(clazz, id);
    for (Number n : revisoes) {
        AuditoriaRevisao auditoriaRevisao = Persistencia.getInstancia().getEntityManager()
                .find(AuditoriaRevisao.class, n.longValue());
        Object object = auditReader.find(clazz, id, n.longValue());
        aRetornar.add(new RevisaoEObjeto(auditoriaRevisao, object));
    }/*from  w  w w  .  j  av  a  2 s.c  om*/
    return aRetornar;
}

From source file:ch.puzzle.itc.mobiliar.business.function.boundary.FunctionsBoundary.java

License:Open Source License

/**
 * Returns all RevisionInformation for the specified function id
 *//*  ww w  .j a  v  a2 s . c om*/
public List<RevisionInformation> getFunctionRevisions(Integer functionId) {
    List<RevisionInformation> result = new ArrayList<>();
    if (functionId != null) {
        AuditReader reader = AuditReaderFactory.get(entityManager);
        List<Number> list = reader.getRevisions(AmwFunctionEntity.class, functionId);
        for (Number rev : list) {
            Date date = reader.getRevisionDate(rev);
            MyRevisionEntity myRev = entityManager.find(MyRevisionEntity.class, rev);
            result.add(new RevisionInformation(rev, date, myRev.getUsername()));
        }
        Collections.sort(result);
    }
    return result;
}

From source file:ch.puzzle.itc.mobiliar.business.globalfunction.boundary.GlobalFunctionsBoundary.java

License:Open Source License

/**
 * Returns all RevisionInformation for the specified function id
 *//*w w  w . java2s  .c o m*/
public List<RevisionInformation> getFunctionRevisions(Integer functionId) {
    List<RevisionInformation> result = new ArrayList<RevisionInformation>();
    if (functionId != null) {
        AuditReader reader = AuditReaderFactory.get(entityManager);
        List<Number> list = reader.getRevisions(GlobalFunctionEntity.class, functionId);
        for (Number rev : list) {
            Date date = reader.getRevisionDate(rev);
            MyRevisionEntity myRev = entityManager.find(MyRevisionEntity.class, rev);
            result.add(new RevisionInformation(rev, date, myRev.getUsername()));
        }
        Collections.sort(result);
    }
    return result;
}

From source file:ch.puzzle.itc.mobiliar.business.template.boundary.TemplateEditor.java

License:Open Source License

public List<RevisionInformation> getTemplateRevisions(Integer templateId) {
    List<RevisionInformation> result = new ArrayList<>();
    AuditReader reader = AuditReaderFactory.get(entityManager);
    List<Number> list = reader.getRevisions(TemplateDescriptorEntity.class, templateId);
    for (Number rev : list) {
        Date date = reader.getRevisionDate(rev);
        MyRevisionEntity myRev = entityManager.find(MyRevisionEntity.class, rev);
        result.add(new RevisionInformation(rev, date, myRev.getUsername()));
    }//ww  w.j  a  va2s  .c  o  m
    Collections.sort(result);
    return result;
}

From source file:ch.puzzle.itc.mobiliar.test.testrunner.example.ExamplePersistenceEnversTest.java

License:Open Source License

@Test
public void shouldFindPropertyDescriptorEntity_inDifferentVersions() throws Exception {
    // when//from  w ww. j a  v  a 2 s.  c  om
    PropertyDescriptorEntity result = entityManager.find(PropertyDescriptorEntity.class, 1);

    AuditReader auditReader = AuditReaderFactory.get(entityManager);

    List<Number> revisions = auditReader.getRevisions(PropertyDescriptorEntity.class, 1);
    PropertyDescriptorEntity revision1 = auditReader.find(PropertyDescriptorEntity.class, 1, 1);
    PropertyDescriptorEntity revision2 = auditReader.find(PropertyDescriptorEntity.class, 1, 2);

    // then
    assertNotNull(revisions);
    assertNotNull(revision1);
    assertNotNull(result);
    assertEquals(2, revisions.size());
    assertEquals("comment2", result.getPropertyComment());
    assertEquals("comment", revision1.getPropertyComment());
    assertEquals("comment2", revision2.getPropertyComment());
}

From source file:com.intuit.tank.dao.BaseDao.java

License:Open Source License

/**
 * // w  ww. jav  a 2  s . c om
 * @param id
 * @return
 */
public int getHeadRevisionNumber(int id) {
    int result = 0;
    try {
        begin();
        AuditReader reader = AuditReaderFactory.get(getEntityManager());
        List<Number> revisions = reader.getRevisions(entityClass, id);
        if (!revisions.isEmpty()) {
            result = revisions.get(revisions.size() - 1).intValue();
        }
        commit();
    } catch (NoResultException e) {
        LOG.warn("No result for revision with id of " + id);
    } finally {
        cleanup();
    }
    return result;
}

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  ww.ja  v  a2 s.co  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")
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:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java

License:Apache License

@SuppressWarnings("unchecked")
public Page<Revision<N, T>> findRevisions(ID id, Pageable pageable) {

    Class<T> type = entityInformation.getJavaType();
    AuditReader reader = AuditReaderFactory.get(entityManager);
    List<Number> revisionNumbers = reader.getRevisions(type, id);

    if (pageable.getOffset() > revisionNumbers.size()) {
        return new PageImpl<Revision<N, T>>(Collections.<Revision<N, T>>emptyList(), pageable, 0);
    }/* w w  w  .jav a2s.c o  m*/

    int upperBound = pageable.getOffset() + pageable.getPageSize();
    upperBound = upperBound > revisionNumbers.size() ? revisionNumbers.size() : upperBound;

    List<? extends Number> subList = revisionNumbers.subList(pageable.getOffset(), upperBound);
    Revisions<N, T> revisions = getEntitiesForRevisions((List<N>) subList, id, reader);

    return new PageImpl<Revision<N, T>>(revisions.getContent(), pageable, revisionNumbers.size());
}

From source file:fi.vm.sade.eperusteet.amosaa.repository.version.JpaWithVersioningRepositoryImpl.java

License:EUPL

@Override
public Integer getLatestRevisionId(ID id) {
    AuditReader auditReader = AuditReaderFactory.get(entityManager);
    final List<Number> revisions = auditReader.getRevisions(entityInformation.getJavaType(), id);
    if (revisions == null || revisions.isEmpty()) {
        return null;
    }//from   ww  w .  ja  v a2 s. co  m
    return revisions.get(revisions.size() - 1).intValue();
}