@Test public void testAuditQueryUsingEmbeddableNonEqualityCheck() { try { final NameInfo nameInfo = new NameInfo( "John", "Doe" ); final AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision( Person.class, 1 ); query.add( AuditEntity.property( "nameInfo" ).le( nameInfo ) ); } catch ( Exception ex ) { assertTyping( AuditException.class, ex ); } } }
@Test public void testRevisionsLeWithPropertyQuery() { List result = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber() ) .add( AuditEntity.revisionNumber().le( 3 ) ) .add( AuditEntity.property( "str1" ).eq( "a" ) ) .getResultList(); Assert.assertEquals( Arrays.asList( 1 ), result ); }
.add( AuditEntity.property( "customFields_prop1" ).le( 20 ) ) .getResultList();
@Test public void testRevisionsPropertyEqQuery() { List revs_id1 = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber() ) .add( AuditEntity.property( "str1" ).le( "a" ) ) .add( AuditEntity.id().eq( id1 ) ) .getResultList(); List revs_id2 = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber() ) .add( AuditEntity.property( "str1" ).le( "a" ) ) .add( AuditEntity.id().eq( id2 ) ) .addOrder( AuditEntity.revisionNumber().asc() ) .getResultList(); List revs_id3 = getAuditReader().createQuery() .forRevisionsOfEntity( StrIntTestEntity.class, false, true ) .addProjection( AuditEntity.revisionNumber() ) .add( AuditEntity.property( "str1" ).le( "a" ) ) .add( AuditEntity.id().eq( id3 ) ) .getResultList(); assert Arrays.asList( 1 ).equals( revs_id1 ); assert Arrays.asList( 1, 2 ).equals( revs_id2 ); assert Arrays.asList( 3 ).equals( revs_id3 ); }
@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; }
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; }