List of usage examples for org.hibernate.envers AuditReader getRevisions
List<Number> getRevisions(Class<?> cls, Object primaryKey)
throws IllegalArgumentException, NotAuditedException, IllegalStateException;
From source file:io.oasp.module.jpa.dataaccess.base.AbstractGenericRevisionedDao.java
License:Apache License
@Override public List<RevisionMetadata> getRevisionHistoryMetadata(Object id) { AuditReader auditReader = getAuditReader(); List<Number> revisionList = auditReader.getRevisions(getEntityClass(), id); List<RevisionMetadata> result = new ArrayList<>(); for (Number revision : revisionList) { Long revisionLong = Long.valueOf(revision.longValue()); result.add(new LazyRevisionMetadata(getEntityManager(), revisionLong)); }/*from w ww . ja v a 2s . c o m*/ return result; }
From source file:net.sf.mmm.persistence.impl.hibernate.AbstractRevisionedDaoEnvers.java
License:Apache License
/** * {@inheritDoc}/*ww w. jav a 2s . c om*/ */ @Override public List<RevisionMetadata> getRevisionHistoryMetadata(Object id) { AuditReader auditReader = getAuditReader(); List<Number> revisionList = auditReader.getRevisions(getEntityClass(), id); List<RevisionMetadata> result = new ArrayList<RevisionMetadata>(); for (Number revision : revisionList) { Long revisionLong = Long.valueOf(revision.longValue()); result.add(new LazyRevisionMetadata(this.persistenceManager, revisionLong)); } return result; }
From source file:org.asqatasun.entity.dao.audit.ProcessResultDAOImpl.java
License:Open Source License
@Override public List<DefiniteResult> getHistoryChanges(ProcessResult processResultImpl) { List<DefiniteResult> history = new ArrayList<>(); AuditReader auditReader = AuditReaderFactory.get(this.entityManager); Long id = processResultImpl.getId(); if (id == null) { return new ArrayList<>(); }// w w w. j av a 2 s.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.bitbucket.fbascheper.tutorial.envers.EnversIllustrationTest.java
License:Apache License
@Test public void testOne() { // create a couple of events final Event event1 = getTransactionTemplate().execute(new TransactionCallback<Event>() { @Override/*from ww w . ja v a 2s .com*/ public Event doInTransaction(TransactionStatus status) { // revision 1 Event event = new Event("Our very first event!", new Date()); getEntityManager().persist(event); return event; } }); final Event event2 = getTransactionTemplate().execute(new TransactionCallback<Event>() { @Override public Event doInTransaction(TransactionStatus status) { // revision 2 Event event = new Event("A follow up event", new Date()); getEntityManager().persist(event); return event; } }); // now lets pull events from the database and list them List<Event> result = getTransactionTemplate().execute(new TransactionCallback<List<Event>>() { @Override public List<Event> doInTransaction(TransactionStatus status) { List<Event> result = getEntityManager().createQuery("select evt from Event evt", Event.class) .getResultList(); for (Event event : result) { System.out.println("Event (" + event.getDate() + ") : " + event.getTitle()); } return result; } }); // verify that id's were generated final Long event1Id = event1.getId(); final Long event2Id = event2.getId(); assertThat(event1Id, notNullValue()); assertThat(event2Id, notNullValue()); // so far the code is the same as we have seen in previous tutorials. Now lets leverage Envers... // first lets create some revisions getTransactionTemplate().execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { // revision 3 Event myEvent = getEntityManager().find(Event.class, event2Id); myEvent.setDate(new Date()); myEvent.setTitle(myEvent.getTitle() + " (rescheduled)"); } }); // and then use an AuditReader to look back through history getTransactionTemplate().execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus status) { Event myEvent = getEntityManager().find(Event.class, event2Id); assertThat("A follow up event (rescheduled)", is(myEvent.getTitle())); AuditReader reader = AuditReaderFactory.get(getEntityManager()); List<? extends Number> event2Revisions = reader.getRevisions(Event.class, event2Id); assertThat(event2Revisions.size(), is(2)); long event2Revision1 = event2Revisions.get(0).longValue(); long event2Revision2 = event2Revisions.get(1).longValue(); assertThat(event2Revision1, is(2L)); assertThat(event2Revision2, is(3L)); Event firstRevision = reader.find(Event.class, event2Id, event2Revision1); assertThat(firstRevision, notNullValue()); assertThat(firstRevision.getTitle(), notNullValue()); assertThat(firstRevision.getTitle(), not(is(myEvent.getTitle()))); assertThat(firstRevision.getDate(), not(is(myEvent.getDate()))); Event secondRevision = reader.find(Event.class, event2Id, event2Revision2); assertThat(secondRevision, notNullValue()); assertThat(secondRevision.getTitle(), notNullValue()); assertThat(secondRevision.getTitle(), is(myEvent.getTitle())); assertThat(secondRevision.getDate(), is(myEvent.getDate())); } }); }
From source file:org.jboss.as.test.integration.hibernate.envers.SFSBHibernateEnversSessionFactory.java
License:Open Source License
public StudentAudited retrieveOldStudentVersion(int id) { AuditReader reader = AuditReaderFactory.get(sessionFactory.openSession()); StudentAudited student_rev = reader.find(StudentAudited.class, id, 1); List<Number> revlist = reader.getRevisions(StudentAudited.class, id); // this is for checking revision size hence not removing this S.o.p //System.out.println("Size of revisionList:--" + revlist.size()); return student_rev; }
From source file:org.jboss.pnc.model.BuildConfigurationTest.java
License:Open Source License
@Test public void testRetrieveAuditedGenericParameters() { //given//ww w . jav a2 s .co 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
/** * @return Returns a collection of revisions *///from www . j a v a 2 s. c o m public static <T extends AuditedEntity> Map<Number, T> getRevisionEntities(final EntityManager entityManager, final Class<T> entityClass, final Integer id) { final AuditReader reader = AuditReaderFactory.get(entityManager); final List<Number> revisions = reader.getRevisions(entityClass, id); Collections.sort(revisions, Collections.reverseOrder()); /* Use a LinkedHashMap to preserver the order */ final Map<Number, T> retValue = new LinkedHashMap<Number, T>(); for (final Number revision : revisions) retValue.put(revision, getRevision(reader, entityClass, id, revision, false)); return retValue; }
From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java
License:Open Source License
/** * @return Returns the list of revision numbers for this entity, as maintained by Envers */// w w w .ja v a2 s . c om public static <T extends AuditedEntity> List<Number> getRevisions(final EntityManager entityManager, final Class<T> entityClass, final Number id) { final AuditReader reader = AuditReaderFactory.get(entityManager); final List<Number> retValue = reader.getRevisions(entityClass, id); Collections.sort(retValue, Collections.reverseOrder()); return retValue; }
From source file:org.jboss.pressgang.ccms.model.utils.EnversUtilities.java
License:Open Source License
public static <T extends AuditedEntity> Number getLatestRevision(final EntityManager entityManager, final Class<T> entityClass, final Integer id) { final AuditReader reader = AuditReaderFactory.get(entityManager); final List<Number> retValue = reader.getRevisions(entityClass, id); Collections.sort(retValue, Collections.reverseOrder()); return retValue.size() != 0 ? retValue.get(0) : -1; }
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 w w. j a v a2s. com 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; }