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:TestConsole.java

License:Open Source License

private void printPersonHistory(StringBuilder sb, int personId) {
    AuditReader reader = AuditReaderFactory.get(entityManager);

    List<?> personHistory = reader.createQuery().forRevisionsOfEntity(Person.class, false, true)
            .add(AuditEntity.id().eq(personId)).getResultList();

    if (personHistory.size() == 0) {
        sb.append("A person with id ").append(personId).append(" does not exist.\n");
    } else {//ww  w. j  av a2  s  .com
        for (Object historyObj : personHistory) {
            Object[] history = (Object[]) historyObj;
            DefaultRevisionEntity revision = (DefaultRevisionEntity) history[1];
            sb.append("revision = ").append(revision.getId()).append(", ");
            printPerson(sb, (Person) history[0]);
            sb.append(" (").append(revision.getRevisionDate()).append(")\n");
        }
    }
}

From source file:TestConsole.java

License:Open Source License

private void printPersonAtRevision(StringBuilder sb, int personId, int revision) {
    AuditReader reader = AuditReaderFactory.get(entityManager);

    Person p = reader.find(Person.class, personId, revision);
    if (p == null) {
        sb.append("This person does not exist at that revision.");
    } else {/*from   w  w w.  j ava  2 s.  c o m*/
        printPerson(sb, p);
    }
}

From source file:TestConsole.java

License:Open Source License

private void printAddressHistory(StringBuilder sb, int addressId) {
    AuditReader reader = AuditReaderFactory.get(entityManager);

    List<?> addressHistory = reader.createQuery().forRevisionsOfEntity(Address.class, false, true)
            .add(AuditEntity.id().eq(addressId)).getResultList();

    if (addressHistory.size() == 0) {
        sb.append("A address with id ").append(addressId).append(" does not exist.\n");
    } else {//  w w w  . jav  a2 s .  co  m
        for (Object historyObj : addressHistory) {
            Object[] history = (Object[]) historyObj;
            DefaultRevisionEntity revision = (DefaultRevisionEntity) history[1];
            sb.append("revision = ").append(revision.getId()).append(", ");
            printAddress(sb, (Address) history[0]);
            sb.append(" (").append(revision.getRevisionDate()).append(")\n");
        }
    }
}

From source file:TestConsole.java

License:Open Source License

private void printAddressAtRevision(StringBuilder sb, int addressId, int revision) {
    AuditReader reader = AuditReaderFactory.get(entityManager);

    Address a = reader.find(Address.class, addressId, revision);
    if (a == null) {
        sb.append("This address does not exist at that revision.");
    } else {/*www  .  j a va  2s .  c om*/
        printAddress(sb, a);
    }
}

From source file:au.org.theark.core.dao.AuditDao.java

License:Open Source License

public AuditReader getAuditReader() {
    return AuditReaderFactory.get(getSession());
}

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 ww  w  . j av  a2 s  .co m*/
    return aRetornar;
}

From source file:br.ufac.sion.service.AuditoriaService.java

public Set<AuditoriaDTO> findAllRevisions(FiltroAuditoria filtro) throws NegocioException {
    if (filtro.getDataInicio() != null && filtro.getDataFim() != null) {
        if (!filtro.getDataFim().isAfter(filtro.getDataInicio())) {
            throw new NegocioException("A data de termino deve ser maior que a data de incio!");
        }//from   ww  w  .  java 2  s .  c o  m
    }
    Set<AuditoriaDTO> dtos = new HashSet<>();

    AuditReader reader = AuditReaderFactory.get(em);

    AuditQuery query = reader.createQuery().forRevisionsOfEntity(filtro.getClasse(), false, true);

    if (filtro.getDataInicio() != null) {
        query.add(AuditEntity.revisionProperty("timestamp")
                .gt(Timestamp.from(filtro.getDataInicio().toInstant(ZoneOffset.UTC)).getTime()));
    }
    if (filtro.getDataFim() != null) {
        query.add(AuditEntity.revisionProperty("timestamp")
                .lt(Timestamp.from(filtro.getDataFim().toInstant(ZoneOffset.UTC)).getTime()));
    }

    if (StringUtils.isNotEmpty(filtro.getLogin())) {
        query.add(AuditEntity.revisionProperty("username").ilike(filtro.getLogin(), MatchMode.EXACT));
    }

    if (filtro.getTiposRevisao().length > 0) {
        System.out.println("entra id tipo revisao");
        query.add(AuditEntity.property("REVTYPE").in(filtro.getTiposRevisao()));
    }

    List<Object[]> result = query.getResultList();

    for (Object[] o : result) {
        try {
            //                Object instancia = filtro.getClass().cast(o[0]);
            Object instancia = Class.forName(filtro.getClasse().getName()).cast(o[0]);
            //                Method metodo;
            //                metodo = instancia.getClass().getMethod("getId");
            //                Long id = (Long) metodo.invoke(instancia);

            CustomRevisionEntity revision = (CustomRevisionEntity) o[1];
            RevisionType revisionType = (RevisionType) o[2];

            Instant instant = Instant.ofEpochMilli(revision.getTimestamp());

            AuditoriaDTO dto = new AuditoriaDTO(instancia, revisionType, filtro.getEntidade(), revision);

            dtos.add(dto);
        } catch (Exception ex) {
            throw new NegocioException(ex.getMessage());
        }
    }
    return dtos;
}

From source file:br.ufac.sion.service.AuditoriaService.java

public <T> List<T> findRevisionsById(Class<?> classe, Long id) {
    AuditReader reader = AuditReaderFactory.get(em);

    AuditQuery q = reader.createQuery().forRevisionsOfEntity(classe, true, true);
    q.add(AuditEntity.id().eq(id));/*  w  w  w. j a  v  a  2 s  . c  o  m*/
    List<T> audit = q.getResultList();

    return audit;
}

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

License:Open Source License

@SuppressWarnings("unchecked")
public <T> Object getDeletedEntity(T entity, Integer id) {
    Objects.requireNonNull(entity, "Entity can not be null");
    Objects.requireNonNull(id, "Id can not be null");

    AuditReader reader = AuditReaderFactory.get(entityManager);

    if (reader.isEntityClassAudited(entity.getClass())) {
        AuditQuery query = reader.createQuery().forRevisionsOfEntity(entity.getClass(), false, true)
                .add(AuditEntity.id().eq(id)).add(AuditEntity.revisionType().eq(DEL));

        List<Object[]> resultList = query.getResultList();
        if (!resultList.isEmpty()) {
            return resultList.get(0)[0];
        }//from ww w  .ja  v a  2s .c o  m
    }
    return null;
}

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

License:Open Source License

@SuppressWarnings("unchecked")
public List<Object> getAllDeletedEntities(Class clazz) {
    Objects.requireNonNull(clazz, "Clazz can not be null");

    AuditReader reader = AuditReaderFactory.get(entityManager);

    if (reader.isEntityClassAudited(clazz)) {
        AuditQuery query = reader.createQuery().forRevisionsOfEntity(clazz, false, true)
                .add(AuditEntity.revisionType().eq(DEL));

        List<Object[]> resultList = query.getResultList();
        if (!resultList.isEmpty()) {
            List<Object> deleted = new ArrayList<>();
            for (Object[] objects : resultList) {
                deleted.add(objects[0]);
            }//  www. ja  v a2s  . c o  m
            return deleted;
        }
    }
    return Collections.EMPTY_LIST;
}