List of usage examples for org.hibernate.envers.query AuditQuery addOrder
AuditQuery addOrder(AuditOrder order);
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()); }