List of usage examples for org.hibernate.envers.query AuditEntity revisionNumber
public static AuditProperty<Number> revisionNumber()
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 av a 2s . co 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 . j ava2 s . c o 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])); }/* www.j ava 2s . c o m*/ return revisions; }
From source file:fr.mcc.ginco.audit.utils.AuditHelper.java
License:CeCILL license
/** * Gets the preferred term of the given concept at the given revision * @param revisionNumber//w w w. j a v a 2 s .c o m * @param conceptId * @param lang * @return */ public ThesaurusTerm getPreferredTermAtRevision(Number revisionNumber, String conceptId, String lang) { AuditQuery query = reader.getAuditReader().createQuery() .forEntitiesAtRevision(ThesaurusTerm.class, revisionNumber) .add(AuditEntity.relatedId("concept").eq(conceptId)).add(AuditEntity.property("prefered").eq(true)) .addOrder(AuditEntity.revisionNumber().desc()).setMaxResults(1); if (lang != null) { auditQueryBuilder.addFilterOnLanguage(query, lang); } List results = query.getResultList(); if (results.isEmpty()) { return null; } else { return (ThesaurusTerm) results.get(0); } }
From source file:fr.mcc.ginco.audit.utils.AuditQueryBuilder.java
License:CeCILL license
/** * Builds the query to get the previous version * /*from w w w . j a v a 2 s . co m*/ * @param reader * @param clazz * @param identifier * @param currentRevision * @return */ public AuditQuery getPreviousVersionQuery(Class<?> clazz, Serializable identifier, int currentRevision) { return readerService.getAuditReader().createQuery().forRevisionsOfEntity(clazz, false, true) .addProjection(AuditEntity.revisionNumber().max()).add(AuditEntity.id().eq(identifier)) .add(AuditEntity.revisionNumber().lt(currentRevision)); }
From source file:fr.mcc.ginco.audit.utils.AuditQueryBuilder.java
License:CeCILL license
/** * @param reader/*www .ja v a 2s . c om*/ * @param clazz * @param identifier * @param currentRevision * @return */ public AuditQuery getPreviousPreferredTermQuery(int currentRevision, String conceptId) { return readerService.getAuditReader().createQuery().forRevisionsOfEntity(ThesaurusTerm.class, false, true) .add(AuditEntity.revisionNumber().lt(currentRevision)) .add(AuditEntity.property("prefered").eq(true)).add(AuditEntity.relatedId("concept").eq(conceptId)); }
From source file:love.sola.netsupport.api.stuff.TicketLog.java
License:Open Source License
@SuppressWarnings("unchecked") @Override// w w w.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); } }
From source file:love.sola.netsupport.sql.TableTicket.java
License:Open Source License
@SuppressWarnings("unchecked") public static List<Object[]> track(int tid) { try (Session s = SQLCore.sf.openSession()) { AuditReader reader = getAuditReader(s); List<Object[]> resultList = reader.createQuery().forRevisionsOfEntity(Ticket.class, false, true) .addOrder(AuditEntity.revisionNumber().desc()).add(AuditEntity.id().eq(tid)).getResultList(); return initializeTickets(resultList); }/* w w w . j av a 2 s . co m*/ }
From source file:org.agatom.springatom.data.hades.repo.factory.NVersionedRepositoryImpl.java
License:Open Source License
/** {@inheritDoc} */ @Override//from w w w . j a v a 2s .co m public long countRevisions(final Long id) { final Class<T> type = this.entityInformation.getJavaType(); final AuditReader reader = AuditReaderFactory.get(this.entityManager); if (LOGGER.isTraceEnabled()) { LOGGER.trace(String.format("%s(%s)", "countRevisions", id)); } return (long) reader.createQuery().forRevisionsOfEntity(type, false, true) .addProjection(AuditEntity.revisionNumber().count()).getSingleResult(); }
From source file:org.azafiu.hibernatetest.datainteractor.ProductDAO.java
License:Apache License
/** * Get all products that need to be shown to the checker for approval. * /*www. ja v a 2s .co m*/ * @return a list of Object[]. Each element will be an Object[3] array with * the following items: Object[0] - the {@link ProductEntity} at a * revision ( greater or equal than the one given as parameter) * Object[1] a {@link DefaultRevisionEntity} Object[2] a * {@link RevisionType} object containing information about the * revision */ @Transactional public List<Object[]> getAllProductsWaitingForApproval() { /** * Get all distinct {@link ProductEntity} objects where the wasChecked * property is false order by modified descending */ final AuditQuery query = this.getAuditReader().createQuery() .forRevisionsOfEntity(ProductEntity.class, false, true) .addOrder(AuditEntity.property("modified").desc()) .add(AuditEntity.revisionNumber().maximize().computeAggregationInInstanceContext()) .add(AuditEntity.property("wasChecked").eq(Boolean.FALSE)) .add(AuditEntity.revisionType().ne(RevisionType.DEL)); final List<Object[]> resultList = query.getResultList(); final List<Object[]> result = new ArrayList<>(); /** * for each "changed" object found in the db we need to check if there * is a newer revision of it in which the {@link ProductEntity} was * approved (wasChecked = true) because we do not need to retrieve * already checked objects to the checker. */ for (final Object[] change : resultList) { final ProductEntity pe = (ProductEntity) change[0]; final AuditQuery queryForWasCheckedTrue = this.getAuditReader().createQuery() .forRevisionsOfEntity(ProductEntity.class, false, true) .addOrder(AuditEntity.property("modified").desc()).add(AuditEntity.id().eq(pe.getId())) .add(AuditEntity.property("wasChecked").eq(Boolean.TRUE)); if (pe.getModified() != null) { queryForWasCheckedTrue.add(AuditEntity.property("modified").gt(pe.getModified())); } try { final Object[] trueWasChecked = (Object[]) queryForWasCheckedTrue.getSingleResult(); } catch (final NoResultException ex) { // there is no newer revision where the current product has // wasChecked property == true result.add(change); } } return result; }