List of usage examples for org.hibernate.envers AuditReaderFactory get
public static AuditReader get(EntityManager entityManager) throws AuditException
From source file:com.intuit.tank.dao.JobNotificationDao.java
License:Open Source License
/** * gets the entity at the specified revision * // w w w . j av a 2 s. c o m * @param id * the id of the entity to fetch * @param revisionNumber * the revision number * @return the entity or null if no entity can be found */ @Nullable @Override public JobNotification findRevision(int id, int revisionNumber) { JobNotification result = null; try { begin(); AuditReader reader = AuditReaderFactory.get(getEntityManager()); result = reader.find(JobNotification.class, id, revisionNumber); Hibernate.initialize(result.getLifecycleEvents()); result.getLifecycleEvents().contains(JobLifecycleEvent.QUEUE_ADD); commit(); } catch (NoResultException e) { LOG.warn("No result for revision " + revisionNumber + " with id of " + id); } finally { cleanup(); } return result; }
From source file:com.lvg.springtest.services.springdatajpa.impl.ContactAuditServiceSpringDataJpaImpl.java
@Override @Transactional(readOnly = true)/* w w w. ja va 2s . co m*/ public ContactAudit findAuditByRevision(Long id, int revision) { AuditReader auditReader = AuditReaderFactory.get(em); return auditReader.find(ContactAudit.class, id, revision); }
From source file:com.sdm.core.hibernate.dao.AuditDAO.java
public AuditDAO(Session session) { this(AuditReaderFactory.get(session)); }
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 www . j av a 2 s . c om*/ 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:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java
License:Apache License
@SuppressWarnings("unchecked") public Revision<N, T> findLastChangeRevision(ID id) { Class<T> type = entityInformation.getJavaType(); AuditReader reader = AuditReaderFactory.get(entityManager); List<Number> revisions = reader.getRevisions(type, id); if (revisions.isEmpty()) { return null; }//ww w .j a v a2 s. c om N latestRevision = (N) revisions.get(revisions.size() - 1); Class<?> revisionEntityClass = revisionEntityInformation.getRevisionEntityClass(); Object revisionEntity = reader.findRevision(revisionEntityClass, latestRevision); RevisionMetadata<N> metadata = (RevisionMetadata<N>) getRevisionMetadata(revisionEntity); return new Revision<N, T>(metadata, reader.find(type, id, latestRevision)); }
From source file:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java
License:Apache License
@Override public Revision<N, T> findRevision(ID id, N revisionNumber) { Assert.notNull(id, "Identifier must not be null!"); Assert.notNull(revisionNumber, "Revision number must not be null!"); return getEntityForRevision(revisionNumber, id, AuditReaderFactory.get(entityManager)); }
From source file:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java
License:Apache License
@SuppressWarnings("unchecked") public Revisions<N, T> findRevisions(ID id) { Class<T> type = entityInformation.getJavaType(); AuditReader reader = AuditReaderFactory.get(entityManager); List<? extends Number> revisionNumbers = reader.getRevisions(type, id); return revisionNumbers.isEmpty() ? new Revisions<N, T>(Collections.EMPTY_LIST) : getEntitiesForRevisions((List<N>) revisionNumbers, id, reader); }
From source file:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java
License:Apache License
@SuppressWarnings("unchecked") public Page<Revision<N, T>> findRevisions(ID id, Pageable pageable) { Class<T> type = entityInformation.getJavaType(); AuditReader reader = AuditReaderFactory.get(entityManager); List<Number> revisionNumbers = reader.getRevisions(type, id); if (pageable.getOffset() > revisionNumbers.size()) { return new PageImpl<Revision<N, T>>(Collections.<Revision<N, T>>emptyList(), pageable, 0); }// w ww.j av a2 s. co m int upperBound = pageable.getOffset() + pageable.getPageSize(); upperBound = upperBound > revisionNumbers.size() ? revisionNumbers.size() : upperBound; List<? extends Number> subList = revisionNumbers.subList(pageable.getOffset(), upperBound); Revisions<N, T> revisions = getEntitiesForRevisions((List<N>) subList, id, reader); return new PageImpl<Revision<N, T>>(revisions.getContent(), pageable, revisionNumbers.size()); }
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//from w ww . j a v 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//from www. j a v a 2 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); }