List of usage examples for org.hibernate.envers.query AuditEntity id
public static AuditId id()
From source file:com.confighub.core.store.Store.java
License:Open Source License
public Property getAuditProperty(final Repository repository, final UserAccount user, final long propertyId, final long revId) throws ConfigException { try {/* w ww . j a va 2 s .c om*/ if (!repository.hasReadAccess(user)) { throw new ConfigException(Error.Code.USER_ACCESS_DENIED); } AuditReader reader = AuditReaderFactory.get(em); AuditQuery query = reader.createQuery().forRevisionsOfEntity(Property.class, true, true) .add(AuditEntity.revisionNumber().ge(revId)).add(AuditEntity.revisionNumber().le(revId)) .add(AuditEntity.property("repository").eq(repository)).add(AuditEntity.id().eq(propertyId)); return (Property) query.getSingleResult(); } catch (NoResultException e) { return null; } }
From source file:com.confighub.core.store.Store.java
License:Open Source License
public RepoFile getRepoFile(final UserAccount user, final Repository repository, final Long fileId, final Date time) throws ConfigException { if (!repository.hasReadAccess(user)) { throw new ConfigException(Error.Code.USER_ACCESS_DENIED); }//from w w w.j a v a 2 s .com if (null == time) { RepoFile file = get(RepoFile.class, fileId); if (file.getRepository().equals(repository)) { return file; } else { throw new ConfigException(Error.Code.FILE_NOT_FOUND); } } AuditReader reader = AuditReaderFactory.get(em); Number rev = reader.getRevisionNumberForDate(time); AuditQuery query = reader.createQuery().forEntitiesAtRevision(RepoFile.class, rev); query.add(AuditEntity.property("repository").eq(repository)); query.add(AuditEntity.id().eq(fileId)); try { return (RepoFile) query.getSingleResult(); } catch (NoResultException e) { return null; } catch (Exception e) { handleException(e); return null; } }
From source file:com.confighub.core.store.Store.java
License:Open Source License
public RepoFile getAuditConfigFile(final UserAccount user, final Repository repository, final Long fileId, final Long revId) throws ConfigException { try {/*from www. j a v a2s . c o m*/ if (!repository.hasReadAccess(user)) { throw new ConfigException(Error.Code.USER_ACCESS_DENIED); } AuditReader reader = AuditReaderFactory.get(em); AuditQuery query = reader.createQuery().forRevisionsOfEntity(RepoFile.class, true, true) .add(AuditEntity.revisionNumber().ge(revId)).add(AuditEntity.revisionNumber().le(revId)) .add(AuditEntity.property("repository").eq(repository)).add(AuditEntity.id().eq(fileId)); return (RepoFile) query.getSingleResult(); } catch (NoResultException e) { return null; } catch (Exception e) { handleException(e); return null; } }
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.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 a 2s . com*/ 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//w w w. ja v a 2 s . 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/*from w w w . j ava 2 s . c om*/ * * @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> int getHistoryLengthFor(Class<T> entityClass, Integer id, DateTime fromDate, DateTime toDate) {/*from w w w . j av a 2 s . com*/ 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 w ww . j av a2 s. co 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); }