Example usage for org.hibernate.envers AuditReader find

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

Introduction

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

Prototype

<T> T find(Class<T> cls, Object primaryKey, Date date) throws IllegalArgumentException, NotAuditedException,
        RevisionDoesNotExistException, IllegalStateException;

Source Link

Document

Find an entity by primary key on the given date.

Usage

From source file:org.jboss.as.test.integration.jpa.transaction.envers.SFSB1.java

License:Open Source License

public String retrieveOldEmployeeVersionforRollBack(int id) {
    AuditReader reader = AuditReaderFactory.get(em);
    Employee emp1_rev = reader.find(Employee.class, id, 5);
    return emp1_rev.getAddress();
}

From source file:org.jboss.pnc.model.BuildConfigurationTest.java

License:Open Source License

@Test
public void testRetrieveAuditedGenericParameters() {
    //given/*from   w  w  w.j a  v a  2  s.c  o  m*/
    String key = "key";
    String initialValue = "initialValue";
    String updatedValue = "updatedValue";
    Map<String, String> initialParameters = new HashMap<>();
    initialParameters.put(key, initialValue);

    Map<String, String> updatedParameters = new HashMap<>();
    updatedParameters.put(key, updatedValue);

    //when
    BuildConfiguration buildConfiguration = createBc("auditing test", "description", initialParameters);
    em.getTransaction().begin();
    em.persist(buildConfiguration);
    em.getTransaction().commit();

    buildConfiguration.setGenericParameters(updatedParameters);
    buildConfiguration.setDescription("updated description");
    em.getTransaction().begin();
    em.persist(buildConfiguration);
    em.getTransaction().commit();

    //then
    BuildConfiguration obtained = em.find(BuildConfiguration.class, buildConfiguration.getId());

    AuditReader reader = AuditReaderFactory.get(em);
    List<Number> revisions = reader.getRevisions(BuildConfiguration.class, obtained.getId());

    assertEquals(2, revisions.size());

    Number firstRevision = revisions.get(0);
    BuildConfiguration oldBuildConfiguration = reader.find(BuildConfiguration.class, obtained.getId(),
            firstRevision);
    Number secondRevision = revisions.get(1);
    BuildConfiguration newBuildConfiguration = reader.find(BuildConfiguration.class, obtained.getId(),
            secondRevision);

    Assert.assertEquals(oldBuildConfiguration.getGenericParameters().get(key), initialValue);
    Assert.assertEquals(newBuildConfiguration.getGenericParameters().get(key), updatedValue);

    BuildConfiguration buildConfigurationOld = getByIdRev(buildConfiguration.getId(), firstRevision.intValue());
    BuildConfigurationAudited auditedOld = BuildConfigurationAudited
            .fromBuildConfiguration(buildConfigurationOld, firstRevision.intValue());

    Assert.assertEquals(auditedOld.getGenericParameters().get(key), initialValue);

    BuildConfiguration buildConfigurationNew = getByIdRev(buildConfiguration.getId(),
            secondRevision.intValue());
    BuildConfigurationAudited auditedNew = BuildConfigurationAudited
            .fromBuildConfiguration(buildConfigurationNew, secondRevision.intValue());

    Assert.assertEquals(auditedNew.getGenericParameters().get(key), updatedValue);

}

From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java

License:Open Source License

@SuppressWarnings("unchecked")
private static <T extends AuditedEntity> T getRevision(final AuditReader reader, final Class<T> entityClass,
        final Integer id, final Number revision, boolean revisionCheck) {
    final T revEntity = (T) reader.find(entityClass, id, revision);
    if (revEntity == null)
        return null;

    final Date revisionLastModified = reader.getRevisionDate(revision);
    revEntity.setLastModifiedDate(revisionLastModified);

    revEntity.setRevision(revisionCheck ? getClosestRevision(reader, entityClass, id, revision) : revision);

    return revEntity;
}

From source file:org.opens.tanaguru.entity.dao.audit.ProcessResultDAOImpl.java

License:Open Source License

@Override
public List<DefiniteResult> getHistoryChanges(ProcessResult processResultImpl) {

    List<DefiniteResult> history = new ArrayList<DefiniteResult>();
    AuditReader auditReader = AuditReaderFactory.get(this.entityManager);
    Long id = processResultImpl.getId();
    if (id == null) {
        return new ArrayList<DefiniteResult>();
    }/*from w  ww. ja  v a  2s  .c  om*/
    List<Number> revisions = auditReader.getRevisions(processResultImpl.getClass(), id);
    DefiniteResult find = null;
    for (int i = 0; i < revisions.size(); i++) {
        Number revision = revisions.get(i);
        find = auditReader.find(DefiniteResultImpl.class, id, revision);
        history.add(find);
    }

    return history;

}

From source file:org.springframework.data.envers.repository.support.EnversRevisionRepositoryImpl.java

License:Apache License

/**
 * Returns the entities in the given revisions for the entitiy with the given id.
 * /*from   w  ww. j ava 2s  .c om*/
 * @param revisionNumbers
 * @param id
 * @param reader
 * @return
 */
@SuppressWarnings("unchecked")
private Revisions<N, T> getEntitiesForRevisions(List<N> revisionNumbers, ID id, AuditReader reader) {

    Class<T> type = entityInformation.getJavaType();
    Map<N, T> revisions = new HashMap<N, T>(revisionNumbers.size());

    Class<?> revisionEntityClass = revisionEntityInformation.getRevisionEntityClass();
    Map<Number, Object> revisionEntities = (Map<Number, Object>) reader.findRevisions(revisionEntityClass,
            new HashSet<Number>(revisionNumbers));

    for (Number number : revisionNumbers) {
        revisions.put((N) number, reader.find(type, id, number));
    }

    return new Revisions<N, T>(toRevisions(revisions, revisionEntities));
}

From source file:org.tomitribe.tribestream.registryng.repository.Repository.java

License:Apache License

public OpenApiDocument findByApplicationIdAndRevision(final String applicationid, final int revision) {
    AuditReader auditReader = AuditReaderFactory.get(em);
    OpenApiDocument openApiDocument = auditReader.find(OpenApiDocument.class, applicationid, revision);

    // Resolve the references here, because the Resource implementation will not be able to do that because
    // it is running another transaction
    for (Endpoint endpoint : openApiDocument.getEndpoints()) {
        endpoint.getDocument();/*from   w w w.jav a  2s. c  o m*/
    }

    return openApiDocument;
}

From source file:org.tomitribe.tribestream.registryng.repository.Repository.java

License:Apache License

public Endpoint findEndpointByIdAndRevision(final String endpointId, final int revision) {
    final AuditReader auditReader = AuditReaderFactory.get(em);
    final Endpoint endpoint = auditReader.find(Endpoint.class, endpointId, revision);

    // Resolve the application here, because the caller will not be able to, as it will
    // be running in a different transaction
    endpoint.getApplication().getId();/*from www . j  a v  a  2s .  c  o m*/

    return endpoint;
}

From source file:pl.konczak.mystartupapp.sharedkernel.enversRepository.EnversRevisionRepositoryImpl.java

License:Apache License

/**
 * Returns an entity in the given revision for the given entity-id.
 *
 * @param revisionNumber/*  w ww.j  ava  2s  . c om*/
 * @param id
 * @param reader
 * @return
 */
@SuppressWarnings("unchecked")
private Revision<N, T> getEntityForRevision(N revisionNumber, ID id, AuditReader reader) {

    Class<?> type = revisionEntityInformation.getRevisionEntityClass();

    T revision = (T) reader.findRevision(type, revisionNumber);
    Object entity = reader.find(entityInformation.getJavaType(), id, revisionNumber);

    return new Revision<N, T>((RevisionMetadata<N>) getRevisionMetadata(revision), (T) entity);
}

From source file:pl.softwaremill.enversdemo.working.WorkingDemo.java

License:Open Source License

public void doRun() {
    em.getTransaction().begin();/*  ww w  .  j  av  a 2s .co  m*/

    WorkingAddress a1 = new WorkingAddress("street1");
    em.persist(a1);

    WorkingAddress a2 = new WorkingAddress("street2");
    em.persist(a2);

    WorkingPerson p1 = new WorkingPerson("john", "doe", 10);
    p1.setAddress(a1);
    em.persist(p1);

    em.getTransaction().commit();

    // ---

    em.getTransaction().begin();

    p1 = em.find(WorkingPerson.class, p1.getId());
    p1.setAge(11);

    WorkingPerson p2 = new WorkingPerson("mary", "kowalski", 99);
    p2.setAddress(a1);
    em.persist(p2);

    em.getTransaction().commit();

    // --

    em.getTransaction().begin();

    p1 = em.find(WorkingPerson.class, p1.getId());
    p1.setAddress(a2);
    p1.setName("peter");

    p2 = em.find(WorkingPerson.class, p2.getId());
    p2.setAge(35);

    em.getTransaction().commit();

    // --

    AuditReader ar = AuditReaderFactory.get(em);

    WorkingPerson p1_rev1 = ar.find(WorkingPerson.class, p1.getId(), 1);
    assertEquals(p1_rev1.getAge(), 10);

    WorkingPerson p2_rev3 = ar.find(WorkingPerson.class, p2.getId(), 3);
    assertEquals(p2_rev3.getAge(), 35);

    // --

    assertEquals(ar.getRevisions(WorkingPerson.class, p2.getId()), Arrays.asList(2, 3));

    // --

    assertEquals(ar.find(WorkingAddress.class, a1.getId(), 2).getPersons().size(), 2);
}

From source file:sample.data.jpa.service.CityRepositoryIntegrationTests.java

License:Apache License

private void checkRevisions(long cityId) {
    AuditReader reader = AuditReaderFactory.get(entityManager);

    City city_rev1 = reader.find(City.class, cityId, 1);
    assertThat(city_rev1.getState(), is(WRONG_STATE));

    City city_rev2 = reader.find(City.class, cityId, 2);
    assertThat(city_rev2.getState(), is(OXFORDSHIRE_STATE));
}