Example usage for org.hibernate.envers.query AuditEntity revisionProperty

List of usage examples for org.hibernate.envers.query AuditEntity revisionProperty

Introduction

In this page you can find the example usage for org.hibernate.envers.query AuditEntity revisionProperty.

Prototype

public static AuditProperty<Object> revisionProperty(String propertyName) 

Source Link

Document

Create restrictions, projections and specify order for a property of the revision entity, corresponding to an audited entity.

Usage

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  w  ww .  j av a 2s.  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:com.impetus.ankush.common.service.ConfigurationManager.java

License:Open Source License

/**
 * Gets the configuration.//from w  ww  .j  av a 2  s.  co  m
 * 
 * @param clusterId
 *            the cluster id
 * @return the configuration
 */
public List getConfiguration(Long clusterId) {
    try {
        AuditReader reader = AuditReaderFactory.get(HibernateUtils.getEntityManager());
        AuditQuery query = reader.createQuery().forRevisionsOfEntity(Configuration.class, false, true);

        // filter results besed on cluster id.
        query.add(AuditEntity.property(com.impetus.ankush2.constant.Constant.Keys.CLUSTERID).eq(clusterId));
        query.addOrder(
                AuditEntity.revisionProperty(com.impetus.ankush2.constant.Constant.Keys.TIMESTAMP).desc());

        // Getting Result list.
        List list = query.getResultList();

        // Creating List Object.
        List result = new ArrayList();
        for (Object object : list) {
            Object[] obj = (Object[]) object;
            Map map = new HashMap();
            // Mapping Revision Entity.
            DefaultRevisionEntity ri = (DefaultRevisionEntity) obj[1];
            map.putAll(JsonMapperUtil.mapFromObject(obj[0]));
            map.put(com.impetus.ankush2.constant.Constant.Keys.DATE, ri.getRevisionDate());
            map.put(com.impetus.ankush2.constant.Constant.Keys.REVISIONID, ri.getId());
            map.put(com.impetus.ankush2.constant.Constant.Keys.TYPE, obj[2]);
            result.add(map);
        }
        return result;
    } catch (Exception e) {
        LOG.error(e.getMessage(), e);
    }
    return null;

}

From source file:de.iteratec.iteraplan.persistence.dao.HistoryDAOImpl.java

License:Open Source License

public <T extends BuildingBlock> int getHistoryLengthFor(Class<T> entityClass, Integer id, DateTime fromDate,
        DateTime toDate) {/*from w ww.jav  a2 s.c o  m*/
    Preconditions.checkArgument(id != null && id.intValue() >= 0, "Param id is invalid, should be >=0");
    AuditReader auditReader = getAuditReader();
    AuditQuery totalCountQuery = auditReader.createQuery().forRevisionsOfEntity(entityClass, false, false)
            .add(AuditEntity.id().eq(id));

    if (fromDate != null) {
        Long fromDateLong = Long.valueOf(fromDate.getMillis());
        totalCountQuery.add(AuditEntity.revisionProperty(TIMESTAMP_PROPERTY).ge(fromDateLong));
    }
    if (toDate != null) {
        Long toDateLong = Long.valueOf(toDate.getMillis());
        totalCountQuery.add(AuditEntity.revisionProperty(TIMESTAMP_PROPERTY).le(toDateLong));
    }

    // Can't get the total count from the other query because it might be limited to results of the current page
    return totalCountQuery.getResultList().size();
}

From source file:de.iteratec.iteraplan.persistence.dao.HistoryDAOImpl.java

License:Open Source License

/** {@inheritDoc} */
@SuppressWarnings({ "unchecked", "boxing" })
public <T extends BuildingBlock> List<BuildingBlockRevision<T>> getRevisionBounded(final Class<T> entityClass,
        Integer id, Integer curPage, Integer pageSize, DateTime fromDate, DateTime toDate) {

    Preconditions.checkArgument(id != null && id.intValue() >= 0, "Param id is invalid, should be >=0");
    Preconditions.checkArgument(pageSize >= -1, "Param pageSize is invalid, should be -1 or >0");
    Preconditions.checkArgument(pageSize.intValue() != 0, "Param pageSize is invalid, should be -1 or >0"); //would lead to /0 err

    AuditReader auditReader = getAuditReader();

    // Query retrieves RevisionType in addition to Entity; Revs of type DEL are not retrieved
    // Get date on revisions of this BB
    AuditQuery curPageQuery = auditReader.createQuery().forRevisionsOfEntity(entityClass, false, false)
            .add(AuditEntity.id().eq(id));

    // Limit results by date
    if (fromDate != null) {
        Long fromDateLong = Long.valueOf(fromDate.getMillis());
        curPageQuery.add(AuditEntity.revisionProperty(TIMESTAMP_PROPERTY).ge(fromDateLong));
    }/*w ww.j  a  v  a2  s.c  om*/
    if (toDate != null) {
        Long toDateLong = Long.valueOf(toDate.getMillis());
        curPageQuery.add(AuditEntity.revisionProperty(TIMESTAMP_PROPERTY).le(toDateLong));
    }

    int firstResult = curPage * pageSize;

    // Paging (first results, max results), disabled when requesting all results (pageSize=-1)
    if (pageSize > 0) {
        curPageQuery.setFirstResult(firstResult).setMaxResults(pageSize);
    }

    // Object Array[3] contains: T, HistoryRevisionEntity, RevisionType
    List<Object[]> revsList = curPageQuery.addOrder(AuditEntity.revisionNumber().desc()).getResultList();

    return Lists.newArrayList(Lists.transform(revsList, new Function<Object[], BuildingBlockRevision<T>>() {

        @Override
        public BuildingBlockRevision<T> apply(Object[] revObjects) {
            return new BuildingBlockRevision<T>(revObjects, entityClass);
        }

    }));
}

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

License:EUPL

@Override
public Revision getLatestRevision(ID id) {
    AuditReader auditReader = AuditReaderFactory.get(entityManager);
    Object[] rev = (Object[]) auditReader.createQuery()
            .forRevisionsOfEntity(entityInformation.getJavaType(), false, true).add(AuditEntity.id().eq(id))
            .addOrder(AuditEntity.revisionNumber().desc()).addProjection(AuditEntity.revisionNumber())
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.muokkaajaOid.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.kommentti.getName()))
            .addOrder(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()).desc()).getResultList()
            .iterator().next();/*from   w  w  w .j a  v  a 2  s. c  o  m*/

    return rev != null ? new Revision((Integer) rev[0], (Long) rev[1], (String) rev[2], (String) rev[3]) : null;
}

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

License:EUPL

@Override
public List<Revision> getRevisions(ID id) {
    AuditReader auditReader = AuditReaderFactory.get(entityManager);

    @SuppressWarnings("unchecked")
    List<Object[]> results = (List<Object[]>) auditReader.createQuery()
            .forRevisionsOfEntity(entityInformation.getJavaType(), false, true)
            .addProjection(AuditEntity.revisionNumber())
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.muokkaajaOid.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.kommentti.getName()))
            .addOrder(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()).desc())
            .add(AuditEntity.id().eq(id)).getResultList();

    List<Revision> revisions = new ArrayList<>();
    for (Object[] result : results) {
        revisions.add(//from w ww  .j  ava  2 s.co m
                new Revision((Integer) result[0], (Long) result[1], (String) result[2], (String) result[3]));
    }

    return revisions;
}

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

License:EUPL

@Override
public List<Revision> getRevisions(ID id) {
    AuditReader auditReader = AuditReaderFactory.get(entityManager);

    @SuppressWarnings("unchecked")
    List<Object[]> results = (List<Object[]>) auditReader.createQuery()
            .forRevisionsOfEntity(entityInformation.getJavaType(), false, true).addProjection(AuditEntity.id())
            .addProjection(AuditEntity.revisionNumber())
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.muokkaajaOid.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.kommentti.getName()))
            .addOrder(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()).desc())
            .add(AuditEntity.id().eq(id)).getResultList();

    List<Revision> revisions = new ArrayList<>();
    for (Object[] result : results) {
        revisions.add(new Revision((Long) result[0], (Integer) result[1], (Long) result[2], (String) result[3],
                (String) result[4]));
    }// w  ww.  j  a v  a 2  s  . c  o m

    return revisions;
}

From source file:fr.mcc.ginco.audit.utils.AuditQueryBuilder.java

License:CeCILL license

private void filterOnDateAndThesaurusId(AuditQuery query, Thesaurus thesaurus, Date startDate) {
    query.add(AuditEntity.revisionProperty("thesaurusId").eq(thesaurus.getIdentifier()))
            .add(AuditEntity.revisionProperty("timestamp").ge(startDate.getTime()));
}

From source file:fr.mcc.ginco.audit.utils.AuditQueryBuilder.java

License:CeCILL license

/**
 * @param clazz/*w  ww  .ja v a2  s. co  m*/
 * @param revision
 * @param thesaurusId
 * @return
 */
public AuditQuery getEntityAtRevision(Class<?> clazz, Number revision, String thesaurusId) {
    AuditQuery query = readerService.getAuditReader().createQuery().forEntitiesAtRevision(clazz, revision)
            .add(AuditEntity.revisionProperty("thesaurusId").eq(thesaurusId));
    return query;
}

From source file:love.sola.netsupport.api.stuff.TicketLog.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from   w  ww . j  av a  2  s .c o  m
protected Object process(HttpServletRequest req, WxSession session) throws Exception {
    int first;
    int limit;
    Date start;
    Date end;
    first = req.getParameter("first") == null ? 0 : Integer.parseInt(req.getParameter("first"));
    limit = req.getParameter("limit") == null ? 20 : Integer.parseInt(req.getParameter("limit"));
    start = req.getParameter("start") == null ? getToday() : dateFormat.parse(req.getParameter("start"));
    end = req.getParameter("end") == null ? getToday() : dateFormat.parse(req.getParameter("end"));
    end = DateUtils.addDays(end, 1);
    try (Session s = SQLCore.sf.openSession()) {
        AuditReader reader = TableTicket.getAuditReader(s);
        List<Object[]> resultList = reader.createQuery().forRevisionsOfEntity(Ticket.class, false, true)
                .addOrder(AuditEntity.revisionNumber().desc())
                .add(AuditEntity.revisionProperty("timestamp").between(start.getTime(), end.getTime()))
                .setFirstResult(first).setMaxResults(limit).getResultList();
        return TableTicket.initializeTickets(resultList);
    }
}