Example usage for org.hibernate.envers AuditReaderFactory get

List of usage examples for org.hibernate.envers AuditReaderFactory get

Introduction

In this page you can find the example usage for org.hibernate.envers AuditReaderFactory get.

Prototype

public static AuditReader get(EntityManager entityManager) throws AuditException 

Source Link

Document

Create an audit reader associated with an open entity manager.

Usage

From source file:fi.vm.sade.eperusteet.amosaa.repository.version.JpaWithVersioningRepositoryImpl.java

License:EUPL

@Override
public Revision getLatestRevision(ID id) {
    AuditReader auditReader = AuditReaderFactory.get(entityManager);
    Object[] rev = (Object[]) auditReader.createQuery()
            .forRevisionsOfEntity(entityInformation.getJavaType(), false, true).add(AuditEntity.id().eq(id))
            .addOrder(AuditEntity.revisionNumber().desc()).addProjection(AuditEntity.revisionNumber())
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.muokkaajaOid.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.kommentti.getName()))
            .addOrder(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()).desc()).getResultList()
            .iterator().next();/* ww  w .ja  va 2s .  c  o m*/

    return rev != null ? new Revision((Integer) rev[0], (Long) rev[1], (String) rev[2], (String) rev[3]) : null;
}

From source file:fi.vm.sade.eperusteet.amosaa.repository.version.JpaWithVersioningRepositoryImpl.java

License:EUPL

@Override
public List<Revision> getRevisions(ID id) {
    AuditReader auditReader = AuditReaderFactory.get(entityManager);

    @SuppressWarnings("unchecked")
    List<Object[]> results = (List<Object[]>) auditReader.createQuery()
            .forRevisionsOfEntity(entityInformation.getJavaType(), false, true)
            .addProjection(AuditEntity.revisionNumber())
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.muokkaajaOid.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.kommentti.getName()))
            .addOrder(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()).desc())
            .add(AuditEntity.id().eq(id)).getResultList();

    List<Revision> revisions = new ArrayList<>();
    for (Object[] result : results) {
        revisions.add(/*from  ww w.  java 2  s.co  m*/
                new Revision((Integer) result[0], (Long) result[1], (String) result[2], (String) result[3]));
    }

    return revisions;
}

From source file:fi.vm.sade.eperusteet.amosaa.repository.version.JpaWithVersioningRepositoryImpl.java

License:EUPL

@Override
public T findRevision(ID id, Integer revisionId) {
    return AuditReaderFactory.get(entityManager).find(entityInformation.getJavaType(), id, revisionId);
}

From source file:fi.vm.sade.eperusteet.amosaa.repository.version.JpaWithVersioningRepositoryImpl.java

License:EUPL

@Override
public Integer getLatestRevisionId(ID id) {
    AuditReader auditReader = AuditReaderFactory.get(entityManager);
    final List<Number> revisions = auditReader.getRevisions(entityInformation.getJavaType(), id);
    if (revisions == null || revisions.isEmpty()) {
        return null;
    }//from   ww w .  j  a  v a  2s .c om
    return revisions.get(revisions.size() - 1).intValue();
}

From source file:fi.vm.sade.eperusteet.amosaa.repository.version.JpaWithVersioningRepositoryImpl.java

License:EUPL

@Override
public void setRevisioKommentti(String kommentti) {
    RevisionInfo currentRevision = AuditReaderFactory.get(entityManager).getCurrentRevision(RevisionInfo.class,
            false);//from w  ww  . ja  v a2s .  c  o m
    currentRevision.addKommentti(kommentti);
}

From source file:fi.vm.sade.eperusteet.amosaa.service.revision.impl.RevisionMetaServiceImpl.java

License:EUPL

@Override
public Number getCurrentRevision() {
    AuditReader reader = AuditReaderFactory.get(em);
    try {// ww w .  jav  a2 s .c  o m
        return reader.getRevisionNumberForDate(new Date(Long.MAX_VALUE));
    } catch (RevisionDoesNotExistException ex) {
        return 0;
    }
}

From source file:fi.vm.sade.eperusteet.service.revision.impl.RevisionMetaServiceImpl.java

License:EUPL

@Override
public Number getCurrentRevision() {
    AuditReader reader = AuditReaderFactory.get(em);
    Number revision = reader.getRevisionNumberForDate(new Date(Long.MAX_VALUE));
    return revision;
}

From source file:fi.vm.sade.eperusteet.utils.revision.impl.RevisionMetaServiceImpl.java

License:EUPL

@Override
public Number getCurrentRevision() {
    AuditReader reader = AuditReaderFactory.get(em);
    try {//from  w  w  w .j a  va  2  s. co  m
        Number revision = reader.getRevisionNumberForDate(new Date(Long.MAX_VALUE));
        return revision;
    } catch (RevisionDoesNotExistException ex) {
    }
    return 0;
}

From source file:fi.vm.sade.eperusteet.ylops.repository.version.JpaWithVersioningRepositoryImpl.java

License:EUPL

@Override
public List<Revision> getRevisions(ID id) {
    AuditReader auditReader = AuditReaderFactory.get(entityManager);

    @SuppressWarnings("unchecked")
    List<Object[]> results = (List<Object[]>) auditReader.createQuery()
            .forRevisionsOfEntity(entityInformation.getJavaType(), false, true).addProjection(AuditEntity.id())
            .addProjection(AuditEntity.revisionNumber())
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.muokkaajaOid.getName()))
            .addProjection(AuditEntity.revisionProperty(RevisionInfo_.kommentti.getName()))
            .addOrder(AuditEntity.revisionProperty(RevisionInfo_.timestamp.getName()).desc())
            .add(AuditEntity.id().eq(id)).getResultList();

    List<Revision> revisions = new ArrayList<>();
    for (Object[] result : results) {
        revisions.add(new Revision((Long) result[0], (Integer) result[1], (Long) result[2], (String) result[3],
                (String) result[4]));
    }/*w ww . j  a va2  s .c om*/

    return revisions;
}

From source file:fr.mcc.ginco.audit.tracking.GincoRevListener.java

License:CeCILL license

@Override
public void entityChanged(Class entityClass, String entityName, Serializable entityId,
        RevisionType revisionType, Object revisionEntity) {
    GincoRevModifiedEntityType revEntity = new GincoRevModifiedEntityType();
    revEntity.setEntityClassName(entityClass.getName());
    revEntity.setRevision(((GincoRevEntity) revisionEntity).getId());
    ((GincoRevEntity) revisionEntity).addModifiedEntityType(revEntity);
    if (ArrayUtils.contains(entityClass.getGenericInterfaces(), IAuditableBean.class)) {
        if (!revisionType.equals(RevisionType.DEL)) {
            GenericHibernateDAO objectDAO = new GenericHibernateDAO(entityClass);
            objectDAO.setSessionFactory((SessionFactory) applicationContext.getBean("gincoSessionFactory"));
            String thesaurusId = ((IAuditableBean) objectDAO.getById(entityId)).getThesaurusId();
            ((GincoRevEntity) revisionEntity).setThesaurusId(thesaurusId);
        } else {/*from  w w  w.  j  a  va2 s.c  o  m*/
            SessionFactory sessionFactory = (SessionFactory) applicationContext.getBean("gincoSessionFactory");
            AuditReader reader = AuditReaderFactory.get(sessionFactory.getCurrentSession());

            AuditQueryBuilder queryBuilder = new AuditQueryBuilder();
            AuditQuery query;
            try {
                query = queryBuilder.getEntityAddedQuery(reader, Class.forName(entityName), entityId);
                try {
                    List<Object[]> createdEvent = (List<Object[]>) query.getResultList();
                    if (createdEvent != null && createdEvent.size() > 0) {
                        ((GincoRevEntity) revisionEntity)
                                .setThesaurusId(((GincoRevEntity) createdEvent.get(0)[1]).getThesaurusId());
                    }
                } catch (AuditException ae) {
                    logger.warn("Unable to get the creation revision of the destroyed object", ae);
                }
            } catch (ClassNotFoundException e) {
                logger.error("Error storing audit data", e);
            }
        }
    } else {
        logger.warn("Trying to audit a bean not implementing IAuditableBean interface");
    }

}