List of usage examples for org.hibernate.envers.query AuditEntity revisionNumber
public static AuditProperty<Number> revisionNumber()
From source file:com.sdm.core.hibernate.dao.AuditDAO.java
private AuditQuery getQueryById(Class entityClass, Object id) { return reader.createQuery().forRevisionsOfEntity(entityClass, false, true) .addOrder(AuditEntity.revisionNumber().desc()).add(AuditEntity.id().eq(id)); }
From source file:com.sdm.core.hibernate.dao.AuditDAO.java
public List<?> getNewDataByVersion(Class entityClass, long version) { AuditQuery query = reader.createQuery().forRevisionsOfEntity(entityClass, false, true) .add(AuditEntity.revisionNumber().gt(version)) .add(AuditEntity.revisionNumber().maximize().computeAggregationInInstanceContext()) .addOrder(AuditEntity.revisionNumber().desc()); List data = query.getResultList(); List<Map<String, Object>> responseList = new ArrayList<>(); for (Object result : data) { responseList.add(this.convertMap((Object[]) result)); }// ww w.jav a 2 s. co m return responseList; }
From source file:com.sdm.core.hibernate.dao.AuditDAO.java
public HashMap<String, Object> getDataByVersion(Class entityClass, Object id, long version) { Object data = this.getQueryById(entityClass, id).add(AuditEntity.revisionNumber().eq(version)) .getSingleResult();/* ww w. j av a 2s .c o m*/ return this.convertMap(((Object[]) data)); }
From source file:com.sdm.core.hibernate.dao.AuditDAO.java
public long getTotal(Class entityClass, Object id) { Object data = this.getQueryById(entityClass, id).addProjection(AuditEntity.revisionNumber().count()) .getSingleResult();/* w ww . ja va 2 s . c om*/ return (long) data; }
From source file:com.webbfontaine.valuewebb.envers.AuditedEntityLoader.java
License:Open Source License
private SimpleDocument getAuditRecord(Class entityClass) { Integer revNum = Integer.parseInt(this.revNum); Long entityId = Long.valueOf(this.entityId); Object auditRecord;/*from ww w . j a v a2 s. c o m*/ AuditReader reader = AuditReaderFactory.get(Utils.getEntityManager()); AuditQuery auditQuery = reader.createQuery().forEntitiesAtRevision(entityClass, revNum) .add(AuditEntity.revisionNumber().eq(revNum)).add(AuditEntity.id().eq(entityId)); List result = auditQuery.getResultList(); if (result.isEmpty()) { auditQuery = reader.createQuery().forEntitiesAtRevision(entityClass, revNum) .add(AuditEntity.revisionNumber().le(revNum)).add(AuditEntity.id().eq(entityId)); auditRecord = auditQuery.getResultList().get(0); } else { auditRecord = result.get(0); } SimpleDocument simpleDocument = null; if (auditRecord instanceof SimpleDocument) { simpleDocument = (SimpleDocument) auditRecord; } else { LOGGER.error("Audited entity of class {} does not implement necessary logic of {}", auditRecord.getClass().getName(), SimpleDocument.class.getName()); } return simpleDocument; }
From source file:cz.filmtit.userspace.Session.java
License:Open Source License
/** * Loads previous versions of subtitle items * * @param results list of currently loaded Translation Results * @param date date before which the translation results to load were * created/*ww w .jav a 2s .c o m*/ * @return returns list of old Translation Results created before given date */ public List<TranslationResult> loadPreviousVersions(List<TranslationResult> results, Date date) { AuditReader auditReader = AuditReaderFactory.get(usHibernateUtil.getSessionWithActiveTransaction()); List<TranslationResult> tResults = new ArrayList<TranslationResult>(); try { Number revisionNumber = auditReader.getRevisionNumberForDate(date); logger.log(Logger.Level.ERROR, revisionNumber); for (TranslationResult result : results) { List resultList = auditReader.createQuery() .forRevisionsOfEntity(USTranslationResult.class, true, false) .add(AuditEntity.id().eq(result.getId())) .add(AuditEntity.revisionNumber().le(revisionNumber)) .addOrder(AuditEntity.revisionNumber().desc()).getResultList(); if (resultList != null && !resultList.isEmpty()) { USTranslationResult singleResult = (USTranslationResult) resultList.get(0); tResults.add(singleResult.getTranslationResult()); } } } catch (RevisionDoesNotExistException e) { logger.log(Logger.Level.ERROR, e.getDate() + " " + e.getRevision()); } return tResults; }
From source file:cz.filmtit.userspace.Session.java
License:Open Source License
/** * Loads old Subtitle Item for a given Translation Result created before * revision number// w ww.j a v a2 s . c o m * * @param result Translation Result of which to load old version * @param number Revision Number * @return returns an object containing old version of Translation Result * and number of revision at which it was created */ public AuditResponse loadOldTranslationResult(TranslationResult result, Number number) { AuditReader auditReader = AuditReaderFactory.get(usHibernateUtil.getSessionWithActiveTransaction()); if (number == null) { number = Integer.MAX_VALUE; } Number revisionNumber = (Number) auditReader.createQuery() .forRevisionsOfEntity(USTranslationResult.class, true, false) .add(AuditEntity.id().eq(result.getId())).addProjection(AuditEntity.revisionNumber().max()) .add(AuditEntity.revisionNumber().lt(number)) .add(AuditEntity.or(AuditEntity.property("userTranslation").hasChanged(), AuditEntity.property("posteditedString").hasChanged())) .getSingleResult(); if (revisionNumber == null) { return new AuditResponse(); } USTranslationResult singleResult = (USTranslationResult) auditReader.createQuery() .forEntitiesAtRevision(USTranslationResult.class, revisionNumber) .add(AuditEntity.id().eq(result.getId())).getSingleResult(); if (singleResult == null) { return new AuditResponse(); } logger.log(Logger.Level.ERROR, singleResult.getTranslationResult() + " " + revisionNumber); return new AuditResponse(singleResult.getTranslationResult(), revisionNumber); }
From source file:de.crowdcode.bitemporal.example.AddressRepository.java
License:Apache License
public Number findRevisionNumberByAddressIdAndRevisionNumber(Long addressId, Number revisionNumber) { Number revision = (Number) getAuditReader().createQuery() .forRevisionsOfEntity(AddressImpl.class, false, true) .addProjection(AuditEntity.revisionNumber().min()).add(AuditEntity.id().eq(addressId)) .add(AuditEntity.revisionNumber().gt(revisionNumber)).getSingleResult(); return revision; }
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 ww w .j ava2 s. c om 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)); }// w w w . j a va 2s . c o 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); } })); }