Example usage for org.hibernate.envers DefaultTrackingModifiedEntitiesRevisionEntity getId

List of usage examples for org.hibernate.envers DefaultTrackingModifiedEntitiesRevisionEntity getId

Introduction

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

Prototype

public int getId() 

Source Link

Usage

From source file:org.devgateway.eudevfin.financial.test.storage.RevisionsTest.java

License:Open Source License

@Test
public void testQueryRevByTypeAndId() {
    final Long modifiedTxId = this.storageHelper.modifyOrgAndAmountOfTransaction();

    // Querying for the revisions when a FinancialTransaction with id modifiedTxId was modified
    final AuditQuery auditQuery = this.auditReader.createQuery()
            .forRevisionsOfEntity(FinancialTransaction.class, false, false)
            .add(AuditEntity.id().eq(modifiedTxId));
    final List<Object[]> auditObjects = auditQuery.getResultList();

    assertTrue(auditObjects.size() > 0);

    for (final Object[] oArray : auditObjects) {
        final FinancialTransaction fTransaction = (FinancialTransaction) oArray[0];
        assertNotNull(fTransaction.getExtendingAgency());
        final DefaultTrackingModifiedEntitiesRevisionEntity trackingObject = (DefaultTrackingModifiedEntitiesRevisionEntity) oArray[1];
        logger.info(String.format(
                "For transaction with id %d and amount %f and organization %s.Revision numbers is %d. Modified entities: %s ",
                fTransaction.getId(), fTransaction.getAmount().doubleValue(),
                fTransaction.getExtendingAgency().getName(), trackingObject.getId(),
                trackingObject.getModifiedEntityNames()));
        assertTrue(trackingObject.getModifiedEntityNames().contains(FinancialTransaction.class.getName()));
    }/*from   w ww  .j a  v  a 2s.  c om*/
    final DefaultTrackingModifiedEntitiesRevisionEntity trackingObject = (DefaultTrackingModifiedEntitiesRevisionEntity) auditObjects
            .get(auditObjects.size() - 1)[1];

    // Last revision should show that also an Organization entity was modified in the same revision
    assertTrue(trackingObject.getModifiedEntityNames().contains(Organization.class.getName()));
}

From source file:org.devgateway.eudevfin.financial.test.storage.RevisionsTest.java

License:Open Source License

/**
 * Showing 2 ways of getting a revision number. The test compares these 2 revision numbers.
 *///from   w w  w .j av  a  2  s .  c  o  m
@Test
public void testRevisionNumbers() {
    final Long modifiedTxId = this.storageHelper.modifyOrgAndAmountOfTransaction();

    AuditQuery auditQuery = this.auditReader.createQuery()
            .forRevisionsOfEntity(FinancialTransaction.class, false, false)
            .add(AuditEntity.id().eq(modifiedTxId))
            .add(AuditEntity.property("donorProjectNumber").hasNotChanged())
            .addProjection(AuditEntity.revisionNumber().max());
    final Number num1 = (Number) auditQuery.getSingleResult();
    logger.info("Last revision for a financial tx with unchanged description is: " + num1);

    auditQuery = this.auditReader.createQuery().forRevisionsOfEntity(Organization.class, false, false)
            .add(AuditEntity.property("code").hasChanged()).add(AuditEntity.revisionNumber().maximize());
    final Object[] oArray = (Object[]) auditQuery.getSingleResult();
    final DefaultTrackingModifiedEntitiesRevisionEntity trackingObject = (DefaultTrackingModifiedEntitiesRevisionEntity) oArray[1];
    logger.info("Last revision for an org with changed name is: " + trackingObject.getId());

    assertEquals(num1, trackingObject.getId());

}