Example usage for org.hibernate.envers.query AuditQuery addOrder

List of usage examples for org.hibernate.envers.query AuditQuery addOrder

Introduction

In this page you can find the example usage for org.hibernate.envers.query AuditQuery addOrder.

Prototype

AuditQuery addOrder(AuditOrder order);

Source Link

Usage

From source file:com.actelion.research.spiritcore.services.dao.DAORevision.java

License:Open Source License

/**
 * Returns all revisions of the given entity until the given maxRevId
 * @param obj//from   www.  j av  a2 s  .  c  o m
 * @param maxRevId (-1, to ignore)
 * @return
 */
@SuppressWarnings("unchecked")
public static List<Revision> getLastRevisions(Class<?> claz, Serializable entityId, int maxRevId, int n) {

    long s = System.currentTimeMillis();
    EntityManager session = JPAUtil.getManager();
    AuditReader reader = AuditReaderFactory.get(session);
    AuditQuery query = reader.createQuery().forRevisionsOfEntity(claz, false, true).setCacheable(false)
            .setLockMode(LockMode.NONE);
    query.add(AuditEntity.id().eq(entityId));

    if (maxRevId > 0) {
        query.add(AuditEntity.revisionNumber().le(maxRevId));
    }
    if (n > 0) {
        query.setMaxResults(n);
        query.addOrder(AuditEntity.revisionNumber().desc());
    }
    List<Revision> revisions = getRevisions(null, query.getResultList());
    LoggerFactory.getLogger(DAORevision.class).debug("Loaded revisions for " + claz.getSimpleName() + "("
            + entityId + ") maxRevId=" + maxRevId + "-" + n + " in " + (System.currentTimeMillis() - s) + "ms");
    return revisions;
}

From source file:com.impetus.ankush.common.service.ConfigurationManager.java

License:Open Source License

/**
 * Gets the configuration.//from ww  w.j a  v a  2s  . c  o 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

/** {@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 a  2s.  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:org.cast.cwm.data.builders.UserContentAuditQueryBuilder.java

License:Open Source License

@Override
public AuditQuery buildSorted(Session session) {
    AuditQuery query = build(session);
    query.addOrder(AuditEntity.revisionProperty("timestamp").desc());
    return query;
}

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));/*w w w.  ja  va2  s .  c om*/
    query.addOrder(AuditEntity.revisionNumber().desc());
    query.setFirstResult(first).setMaxResults(pageSize);

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