@Test public void testRevisionsLtQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber().distinct() ) .add( AuditEntity.revisionNumber().lt( 3 ) ) .addOrder( AuditEntity.revisionNumber().asc() ) .getResultList(); Assert.assertEquals( Arrays.asList( 1, 2 ), result ); }
@Test public void testRevisionsGeQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber().distinct() ) .add( AuditEntity.revisionNumber().ge( 2 ) ) .addOrder( AuditEntity.revisionNumber().asc() ) .getResultList(); Assert.assertEquals( TestTools.makeSet( 2, 3, 4 ), new HashSet( result ) ); }
@SuppressWarnings("unchecked") public static <E> List<Integer> getEditedEntities(final EntityManager entityManager, final Class<E> type, final String pkColumnName, final DateTime startDate, final DateTime endDate) { if (startDate == null && endDate == 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 (startDate != null) query.add(AuditEntity.revisionProperty("timestamp").ge(startDate.toDate().getTime())); if (endDate != null) query.add(AuditEntity.revisionProperty("timestamp").le(endDate.toDate().getTime())); final List<Integer> entityIds = query.getResultList(); return entityIds; }
@SuppressWarnings("unchecked") public static <T extends AuditedEntity> List<Integer> getEditedBy(final EntityManager entityManager, final Class<T> clazz, final String idName, final String username) { final AuditReader reader = AuditReaderFactory.get(entityManager); final AuditQuery query = reader.createQuery() .forRevisionsOfEntity(clazz, true, false) .addProjection(AuditEntity.property("originalId." + idName).distinct()) .add(AuditEntity.revisionProperty("userName").eq(username)) .add(AuditEntity.revisionType().eq(RevisionType.MOD)); return query.getResultList(); } }
@SuppressWarnings("unchecked") public static <T extends AuditedEntity> List<Integer> getCreatedBy(final EntityManager entityManager, final Class<T> clazz, final String idName, final String username) { final AuditReader reader = AuditReaderFactory.get(entityManager); final AuditQuery query = reader.createQuery() .forRevisionsOfEntity(clazz, true, false) .addProjection(AuditEntity.property("originalId." + idName).distinct()) .add(AuditEntity.revisionProperty("userName").eq(username)) .add(AuditEntity.revisionType().eq(RevisionType.ADD)); return query.getResultList(); }
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; }