List of usage examples for org.hibernate.envers.query AuditEntity revisionNumber
public static AuditProperty<Number> revisionNumber()
From source file:org.jboss.pnc.rest.provider.BuildRecordProvider.java
License:Open Source License
public CollectionInfo<BuildRecordRest> getAllForConfigurationOrProjectName(int pageIndex, int pageSize, String sortingRsql, String query, String name) { List<Project> projectsMatchingName = projectRepository .queryWithPredicates(ProjectPredicates.searchByProjectName(name)); AuditDisjunction disjunction = AuditEntity.disjunction(); projectsMatchingName.forEach(project -> { disjunction.add(AuditEntity.relatedId("project").eq(project.getId())); });// w w w . java2 s . c o m disjunction.add(AuditEntity.property("name").like(name)); List<Object[]> buildConfigurationRevisions = AuditReaderFactory.get(entityManager).createQuery() .forRevisionsOfEntity(BuildConfiguration.class, false, false).add(disjunction) .addOrder(AuditEntity.revisionNumber().desc()).getResultList(); return queryForBuildRecords(pageIndex, pageSize, sortingRsql, query, buildConfigurationRevisions); }
From source file:org.jboss.pressgang.ccms.filter.utils.EntityUtilities.java
License:Open Source License
public static <E> List<Integer> getEditedEntitiesByRevision(final EntityManager entityManager, final Class<E> type, final String pkColumnName, final Number startRevision, final Number endRevision) { if (startRevision == null && startRevision == null) return null; final AuditReader reader = AuditReaderFactory.get(entityManager); final AuditQuery query = reader.createQuery().forRevisionsOfEntity(type, true, false) .addOrder(AuditEntity.revisionProperty("timestamp").asc()) .addProjection(AuditEntity.property("originalId." + pkColumnName).distinct()); if (startRevision != null) query.add(AuditEntity.revisionNumber().ge(startRevision)); if (endRevision != null) query.add(AuditEntity.revisionNumber().le(endRevision)); final List<Integer> entityIds = query.getResultList(); return entityIds; }
From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java
License:Open Source License
public static <T extends AuditedEntity> Number getClosestRevision(final AuditReader reader, final Class<T> entityClass, final Integer id, final Number revision) { // Find the closest revision that is less than or equal to the revision specified. final Number closestRevision = (Number) reader.createQuery().forRevisionsOfEntity(entityClass, false, true) .addProjection(AuditEntity.revisionNumber().max()).add(AuditEntity.id().eq(id)) .add(AuditEntity.revisionNumber().le(revision)).getSingleResult(); return closestRevision; }
From source file:org.tomitribe.tribestream.registryng.repository.Repository.java
License:Apache License
public <T> List<HistoryEntry<T>> getRevisions(final Class<T> entityClass, final String id, final int first, final int pageSize) throws NoResultException { AuditReader auditReader = AuditReaderFactory.get(em); AuditQuery query = auditReader.createQuery().forRevisionsOfEntity(entityClass, false, true); query.add(AuditEntity.id().eq(id));/* w ww . j a v a 2 s . c o m*/ query.addOrder(AuditEntity.revisionNumber().desc()); query.setFirstResult(first).setMaxResults(pageSize); List<Object[]> objects = query.getResultList(); return objects.stream().map(HistoryEntry<T>::new).collect(toList()); }
From source file:org.tomitribe.tribestream.registryng.repository.Repository.java
License:Apache License
/** * Returns the number of revisions available for the entity with the given id. * * @param entityClass the Entity class type to use to find revisions * @param id the ID of the entity * @return the number of revisions//from w w w . ja v a2 s. c o m */ public <T> int getNumberOfRevisions(final Class<T> entityClass, final String id) { final AuditQuery query = AuditReaderFactory.get(em).createQuery().forRevisionsOfEntity(entityClass, true, true); query.add(AuditEntity.id().eq(id)); query.addProjection(AuditEntity.revisionNumber().count()); return ((Number) query.getSingleResult()).intValue(); }
From source file:py.una.pol.karaku.replication.server.EnversReplicationProvider.java
License:Open Source License
/** * @param clazz/*from w ww . j av a 2 s .co m*/ * @param lastId * @return */ @SuppressWarnings("unchecked") private <T extends Shareable> Bundle<T> getDelta(Class<T> clazz, String lastId) { AuditReader ar = AuditReaderFactory.get(getSession()); Number number = getLastId(clazz, lastId); List<Object[]> entities = ar.createQuery().forRevisionsOfEntity(clazz, false, false) .add(AuditEntity.revisionNumber().gt(number)).getResultList(); Bundle<T> bundle = new Bundle<T>(lastId); for (Object[] o : entities) { if (o == null) { continue; } bundle.add((T) notNull(o[0]), notNull(getId(o[1]))); } return bundle; }
From source file:py.una.pol.karaku.replication.server.EnversReplicationProvider.java
License:Open Source License
/** * @param clazz// w ww .j ava 2s . c o m * @param reader * @param lastId * @return */ @SuppressWarnings("unchecked") private <T extends Shareable> boolean isUnknown(Class<T> clazz, String lastId) { if (Bundle.FIRST_CHANGE.equals(lastId)) { return false; } AuditReader reader = AuditReaderFactory.get(getSession()); List<T> entitiesAtRevision = reader.createQuery().forRevisionsOfEntity(clazz, false, false) .add(AuditEntity.revisionNumber().eq(getLastId(clazz, lastId))).getResultList(); return (entitiesAtRevision == null) || entitiesAtRevision.isEmpty(); }
From source file:py.una.pol.karaku.replication.server.EnversReplicationProvider.java
License:Open Source License
@Nonnull private <T extends Shareable> Bundle<T> getAll(@Nonnull Class<T> clazz) { AuditReader reader = AuditReaderFactory.get(getSession()); Number prior = (Number) reader.createQuery().forRevisionsOfEntity(clazz, false, true) .addProjection(AuditEntity.revisionNumber().max()).getSingleResult(); String lastId;/*from w ww.j a v a 2 s . co m*/ // previous revision, la actual no ser persistida. if (prior == null) { lastId = Bundle.FIRST_CHANGE; } else { lastId = String.valueOf(prior); } return firstChangeProviderHandler.getAll(clazz, notNull(lastId)); }