Example usage for org.hibernate.envers AuditReader createQuery

List of usage examples for org.hibernate.envers AuditReader createQuery

Introduction

In this page you can find the example usage for org.hibernate.envers AuditReader createQuery.

Prototype

AuditQueryCreator createQuery();

Source Link

Document

Creates an audit query

Usage

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));

}