| When the FlushMode is set to commit, a manual flush during a transaction leads to multiple audit revision to be created. Consider the following example:
EntityManager em = getEntityManager();
em.getTransaction().begin();
int revisionNumber = getAuditReader().getCurrentRevision( SequenceIdRevisionEntity.class, true ).getId();
em.flush();
StrTestEntity entity = new StrTestEntity( "entity" );
em.persist( entity );
em.getTransaction().commit();
In the example the persisted entity should have the same revision number ass the revision number obtained before the flush. However, the entity will be assigned to a new revision number. It seems that the AuditProcess does check for FlushMode COMMIT instead of FlushMode MANUAL. This has been introduced with 5.2. |