List of usage examples for org.hibernate.envers AuditReaderFactory get
public static AuditReader get(EntityManager entityManager) throws AuditException
From source file:fr.mcc.ginco.audit.utils.AuditReaderService.java
License:CeCILL license
public AuditReader getAuditReader() { return AuditReaderFactory.get(sessionFactory.getCurrentSession()); }
From source file:io.oasp.module.jpa.dataaccess.base.AbstractGenericRevisionedDao.java
License:Apache License
/** * @return the auditReader */ protected AuditReader getAuditReader() { return AuditReaderFactory.get(getEntityManager()); }
From source file:it.archiworld.util.EJBPreferenceStoreBean.java
License:Open Source License
@SuppressWarnings("unchecked") public List<String> getStringList(String name, Timestamp timestamp) { List<EJBPreferenceObject> list = null; if (timestamp != null) { System.out.println("Getting Stringlist " + name + " with Timestamp: " + timestamp); try {// ww w . j av a2 s .c om reader = AuditReaderFactory.get(manager); Number revision = reader.getRevisionNumberForDate(new Date(timestamp.getTime())); System.out.println(revision); list = reader.createQuery().forEntitiesAtRevision(EJBPreferenceObject.class, revision) .add(AuditEntity.id().eq(name)).setMaxResults(1).getResultList(); } catch (Exception ex) { ex.printStackTrace(); } } else { System.out.println("Getting Stringlist without Timestamp"); list = manager .createQuery("Select ejbprefobj from EJBPreferenceObject as ejbprefobj where ejbprefobj.name=?") .setParameter(1, name).getResultList(); } if (list != null && !list.isEmpty() && list.get(0) != null) return list.get(0).getListString(); return null; }
From source file:love.sola.netsupport.sql.SQLCore.java
License:Open Source License
public static AuditReader getAuditReader(Session session) { return AuditReaderFactory.get(session); }
From source file:org.agatom.springatom.data.hades.repo.factory.NVersionedRepositoryImpl.java
License:Open Source License
/** {@inheritDoc} */ @Override/* w w w . j av a 2s .co m*/ @SafeVarargs @SuppressWarnings("unchecked") public final Revisions<Long, T> findInRevisions(final Long id, final Long... revisionNumbers) { Preconditions.checkArgument(id != null, ERROR_MESSAGE_ID); Preconditions.checkArgument(revisionNumbers.length >= 1, ERROR_MESSAGE_INSUFFICIENT_REV_NUMBERS); if (LOGGER.isTraceEnabled()) { LOGGER.trace(String.format("%s(%s,%s)", "findInRevision", id, Arrays.toString(revisionNumbers))); } final Class<T> type = this.entityInformation.getJavaType(); final AuditReader reader = AuditReaderFactory.get(this.entityManager); final Map<Long, T> revisions = new HashMap<>(revisionNumbers.length); final Class<?> revisionEntityClass = this.revisionEntityInformation.getRevisionEntityClass(); final Map<Number, Object> revisionEntities = (Map<Number, Object>) reader.findRevisions(revisionEntityClass, new HashSet<Number>(Lists.newArrayList(revisionNumbers))); for (Number number : revisionNumbers) { revisions.put((Long) number, reader.find(type, id, number)); } return new Revisions<>(this.toRevisions(revisions, revisionEntities)); }
From source file:org.agatom.springatom.data.hades.repo.factory.NVersionedRepositoryImpl.java
License:Open Source License
/** {@inheritDoc} */ @Override/*from www .j a va2s. c o m*/ @SuppressWarnings({ "unchecked", "SuspiciousToArrayCall" }) public Revisions<Long, T> findRevisions(final Long id, final DateTime dateTime, final Operators operator) { final Class<T> type = this.entityInformation.getJavaType(); final AuditReader reader = AuditReaderFactory.get(this.entityManager); final AuditProperty<Object> actualDate = AuditEntity.revisionProperty("timestamp"); if (LOGGER.isTraceEnabled()) { LOGGER.trace(String.format("%s(%s,%s,%s)", "findRevisions", id, dateTime, operator)); } AuditQuery auditQuery = reader.createQuery().forRevisionsOfEntity(type, false, true); switch (operator) { case BEFORE: auditQuery = auditQuery.add(actualDate.le(dateTime.getMillis())); break; case AFTER: auditQuery = auditQuery.add(actualDate.ge(dateTime.getMillis())); break; case EQ: auditQuery = auditQuery.add(actualDate.eq(dateTime.getMillis())); break; } final List<Object[]> resultList = auditQuery.getResultList(); if (resultList.isEmpty()) { return new Revisions<>(Lists.<Revision<Long, T>>newArrayList()); } final List<Revision<Long, T>> revisionList = new ArrayList<>(); for (Object[] number : resultList) { final Object entity = number[0]; final Object revEntity = number[1]; revisionList.add((Revision<Long, T>) new Revision<>(this.getRevisionMetadata(revEntity), entity)); } return new Revisions<>(revisionList); }
From source file:org.agatom.springatom.data.hades.repo.factory.NVersionedRepositoryImpl.java
License:Open Source License
/** {@inheritDoc} */ @Override//w ww .ja v a 2 s. com public long countRevisions(final Long id) { final Class<T> type = this.entityInformation.getJavaType(); final AuditReader reader = AuditReaderFactory.get(this.entityManager); if (LOGGER.isTraceEnabled()) { LOGGER.trace(String.format("%s(%s)", "countRevisions", id)); } return (long) reader.createQuery().forRevisionsOfEntity(type, false, true) .addProjection(AuditEntity.revisionNumber().count()).getSingleResult(); }
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<>(); }/*from www. j ava 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.azafiu.hibernatetest.datainteractor.CommonDAO.java
License:Apache License
/** * Get an {@link AuditReader} from the {@link EntityManager} through the * {@link AuditReaderFactory}/*from w w w . ja v a 2 s. c om*/ * * @return an {@link AuditReader} */ protected AuditReader getAuditReader() { return AuditReaderFactory.get(this.entityManager); }
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// w ww .java2 s . c om 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())); } }); }