List of usage examples for org.hibernate.envers AuditReader createQuery
AuditQueryCreator createQuery();
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); } }