CustomDataRevEntity custom = getAuditReader().getCurrentRevision( CustomDataRevEntity.class, false ); custom.setData( "data1" ); custom = getAuditReader().getCurrentRevision( CustomDataRevEntity.class, false ); custom.setData( "data2" ); custom = getAuditReader().getCurrentRevision( CustomDataRevEntity.class, true ); custom.setData( "data3" ); custom = getAuditReader().getCurrentRevision( CustomDataRevEntity.class, false ); custom.setData( "data4" ); custom = getAuditReader().getCurrentRevision( CustomDataRevEntity.class, false ); custom.setData( "data5" ); custom = getAuditReader().getCurrentRevision( CustomDataRevEntity.class, false ); custom.setData( "data5bis" );
@Test @TestForIssue(jiraKey = "HHH-11575") public void testSingleRevisionInTransaction() { EntityManager em = getEntityManager(); em.getTransaction().begin(); SequenceIdRevisionEntity revisionBeforeFlush = getAuditReader().getCurrentRevision( SequenceIdRevisionEntity.class, true ); int revisionNumberBeforeFlush = revisionBeforeFlush.getId(); em.flush(); StrTestEntity entity = new StrTestEntity( "entity" ); em.persist( entity ); em.getTransaction().commit(); SequenceIdRevisionEntity entity2Revision = (SequenceIdRevisionEntity) ( (Object[]) getAuditReader().createQuery() .forRevisionsOfEntity( StrTestEntity.class, false, false ).add( AuditEntity.id().eq( entity.getId() ) ).getSingleResult() )[1]; assertEquals( "The revision number obtained before the flush and the persisting of the entity should be the same as the revision number of the entity because there should only be one revision number per transaction", revisionNumberBeforeFlush, entity2Revision.getId() ); }