Example usage for org.hibernate.envers AuditReader createQuery

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

Introduction

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

Prototype

AuditQueryCreator createQuery();

Source Link

Document

Creates an audit query

Usage

From source file:dao.TimeDao.java

public List<Time> listarAuditoria() throws Exception {
    try {//from ww w.j av a 2s. c  o  m
        Session sessao = Hibernate4Util.getSessionFactory();
        Transaction transacao = sessao.beginTransaction();
        AuditReader reader = AuditReaderFactory.get(sessao);
        List<Object[]> resultList = reader.createQuery().forRevisionsOfEntity(Time.class, false, true)
                .getResultList();
        List<Time> listaAuditada = new ArrayList<>();
        int contador = 0;
        for (Object[] objTmp : resultList) {
            Time timeTmp = (Time) objTmp[0];
            timeTmp.setRevType(objTmp[2].toString());
            listaAuditada.add(contador, timeTmp);
            contador++;
        }

        transacao.commit();
        return listaAuditada;
    } catch (HibernateException e) {
        throw new Exception("No foi possvel buscar a auditoria. Erro: " + e.getMessage());
    }
}

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  ww  w.  j  av 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

public <T extends BuildingBlock> T getPreceedingRevisionFor(Class<T> entityClass, Integer bbId,
        Integer currentRevId) {/*from www.j  a  v a2 s  . c  o m*/
    AuditReader auditReader = getAuditReader();

    // Query to get max Rev less than this one (Should exist, since this is a MOD, but might not
    Number prevRev = (Number) auditReader.createQuery().forRevisionsOfEntity(entityClass, true, true)
            .addProjection(AuditEntity.revisionNumber().max()).add(AuditEntity.id().eq(bbId))
            .add(AuditEntity.revisionNumber().lt(currentRevId)).getSingleResult();

    // If History recording was off during the Initial creation of this BB, this MOD rev might be the
    // first known rev
    if (prevRev == null) {
        return null;
    }

    return auditReader.find(entityClass, bbId, prevRev);
}

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));
    }//from w w w.j  a v  a2 s.co  m
    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:de.rs.scrumit.dao.BaseEntityAuditDao.java

License:Open Source License

@Transactional(readOnly = true)
public <T extends BaseEntityAuditModel> void printChangeHistory(Class<T> modelClass, String code) {
    AuditReader reader = AuditReaderFactory.get(entityManager);

    List<?> results = reader.createQuery().forRevisionsOfEntity(modelClass, false, true)
            .add(AuditEntity.property("code").eq(code)).addOrder(AuditEntity.property("changedAt").asc())
            .getResultList();// w  w  w .j a va  2 s .c o m

    SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
    for (Object entry : results) {
        BaseEntityAuditModel model = (BaseEntityAuditModel) ((Object[]) entry)[0];
        RevisionType type = (RevisionType) ((Object[]) entry)[2];
        String msg = type + " entry with code " + model.getCode() + " at time: "
                + format.format(model.getChangedAt());
        LOGGER.debug(msg);
        System.out.println(msg);
    }
}

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();// w  ww . j  a  va2s  .  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  w  w .  ja v a2 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  av  a 2  s .  c om

    return revisions;
}

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

License:CeCILL license

/**
 * Builds a query returning an object creation revision Assumes the id field
 * of the object is named "identifier"/*from ww w  . j  av a  2  s . co m*/
 * 
 * @param reader
 * @param clazz
 *            the object class
 * @param identifier
 *            the object identifier
 * @return
 */
public AuditQuery getEntityAddedQuery(AuditReader reader, Class<?> clazz, Serializable identifier) {
    return reader.createQuery().forRevisionsOfEntity(clazz, false, true).add(AuditEntity.id().eq(identifier))
            .add(AuditEntity.revisionType().eq(RevisionType.ADD));

}

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

License:Open Source License

@SuppressWarnings("unchecked")
@Override//w  ww.j  a  v a  2 s.  com
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);
    }
}