List of usage examples for org.hibernate.envers AuditReader createQuery
AuditQueryCreator createQuery();
From source file:py.una.pol.karaku.replication.server.EnversReplicationProvider.java
License:Open Source License
/** * @param clazz/*from ww w . ja v 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 w w.ja v a 2 s. 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;// w ww . j a va 2 s.c o 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)); }
From source file:sample.data.jpa.SampleDataJpaApplicationTests.java
License:Apache License
@Test public void testEnvers() { FooService fooService = context.getBean(FooService.class); Foo foo = new Foo(); foo.setDescription("Foo"); Foo saved = fooService.save(foo);/*from ww w . j a va 2 s.c o m*/ saved.setDescription("Foo1"); saved = fooService.save(saved); AuditReader auditReader = AuditReaderFactory.get(emf.createEntityManager()); Foo oldFoo = (Foo) auditReader.createQuery().forEntitiesAtRevision(Foo.class, new Integer(1)) .getSingleResult(); Foo newFoo = fooService.load(1); Assert.assertEquals("Foo", oldFoo.getDescription()); Assert.assertEquals("Foo1", newFoo.getDescription()); }
From source file:sample.data.jpa.service.CityRepositoryIntegrationTests.java
License:Apache License
private void checkUsers() { AuditReader reader = AuditReaderFactory.get(entityManager); AuditQuery query = reader.createQuery().forRevisionsOfEntity(City.class, false, false); //This return a list of array triplets of changes concerning the specified revision. // The array triplet contains the entity, entity revision information and at last the revision type. Object[] obj = (Object[]) query.getSingleResult(); //In this case we want the entity revision information object, which is the second object of the array. UserRevEntity userRevEntity = (UserRevEntity) obj[1]; String user = userRevEntity.getUsername(); assertThat(user, is(UserRevisionListener.USERNAME)); }