Example usage for org.hibernate.envers.query AuditEntity revisionProperty

List of usage examples for org.hibernate.envers.query AuditEntity revisionProperty

Introduction

In this page you can find the example usage for org.hibernate.envers.query AuditEntity revisionProperty.

Prototype

public static AuditProperty<Object> revisionProperty(String propertyName) 

Source Link

Document

Create restrictions, projections and specify order for a property of the revision entity, corresponding to an audited entity.

Usage

From source file:org.agatom.springatom.data.hades.repo.factory.NVersionedRepositoryImpl.java

License:Open Source License

/** {@inheritDoc} */
@Override//from   w ww . j a v  a  2 s .  com
@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.cast.cwm.data.builders.UserContentAuditQueryBuilder.java

License:Open Source License

@Override
public AuditQuery build(Session session) {
    AuditReader auditReader = AuditReaderFactory.get(session);
    AuditQuery query = auditReader.createQuery().forRevisionsOfEntity(UserContent.class, false, true);

    if (mUsers != null) {
        List<User> users = mUsers.getObject();
        if (users != null) {
            if (users.isEmpty()) {
                query.add(AuditEntity.property("user_id").eq(0L)); // no users at all
            } else {
                Long[] ids = new Long[users.size()];
                for (int i = 0; i < users.size(); i++)
                    ids[i] = users.get(i).getId();
                query.add(AuditEntity.property("user_id").in(ids));
            }//from  w w w  . ja  va 2 s.  c om
        }
    }

    if (mFromDate != null && mFromDate.getObject() != null)
        query.add(AuditEntity.revisionProperty("timestamp").ge(midnightStart(mFromDate.getObject()).getTime()));
    if (mToDate != null && mToDate.getObject() != null)
        query.add(AuditEntity.revisionProperty("timestamp").le(midnightEnd(mToDate.getObject()).getTime()));
    return query;
}

From source file:org.cast.cwm.data.builders.UserContentAuditQueryBuilder.java

License:Open Source License

@Override
public AuditQuery buildSorted(Session session) {
    AuditQuery query = build(session);/*  www .j  a  v  a 2s . c  o m*/
    query.addOrder(AuditEntity.revisionProperty("timestamp").desc());
    return query;
}

From source file:org.jboss.pressgang.ccms.filter.utils.EntityUtilities.java

License:Open Source License

@SuppressWarnings("unchecked")
public static <E> List<Integer> getEditedEntities(final EntityManager entityManager, final Class<E> type,
        final String pkColumnName, final DateTime startDate, final DateTime endDate) {
    if (startDate == null && endDate == null)
        return null;

    final AuditReader reader = AuditReaderFactory.get(entityManager);

    final AuditQuery query = reader.createQuery().forRevisionsOfEntity(type, true, false)
            .addOrder(AuditEntity.revisionProperty("timestamp").asc())
            .addProjection(AuditEntity.property("originalId." + pkColumnName).distinct());

    if (startDate != null)
        query.add(AuditEntity.revisionProperty("timestamp").ge(startDate.toDate().getTime()));

    if (endDate != null)
        query.add(AuditEntity.revisionProperty("timestamp").le(endDate.toDate().getTime()));

    final List<Integer> entityIds = query.getResultList();

    return entityIds;
}

From source file:org.jboss.pressgang.ccms.filter.utils.EntityUtilities.java

License:Open Source License

public static <E> List<Integer> getEditedEntitiesByRevision(final EntityManager entityManager,
        final Class<E> type, final String pkColumnName, final Number startRevision, final Number endRevision) {
    if (startRevision == null && startRevision == null)
        return null;

    final AuditReader reader = AuditReaderFactory.get(entityManager);

    final AuditQuery query = reader.createQuery().forRevisionsOfEntity(type, true, false)
            .addOrder(AuditEntity.revisionProperty("timestamp").asc())
            .addProjection(AuditEntity.property("originalId." + pkColumnName).distinct());

    if (startRevision != null)
        query.add(AuditEntity.revisionNumber().ge(startRevision));

    if (endRevision != null)
        query.add(AuditEntity.revisionNumber().le(endRevision));

    final List<Integer> entityIds = query.getResultList();

    return entityIds;
}

From source file:org.jboss.pressgang.ccms.filter.utils.EntityUtilities.java

License:Open Source License

@SuppressWarnings("unchecked")
public static <T extends AuditedEntity> List<Integer> getCreatedBy(final EntityManager entityManager,
        final Class<T> clazz, final String idName, final String username) {
    final AuditReader reader = AuditReaderFactory.get(entityManager);
    final AuditQuery query = reader.createQuery().forRevisionsOfEntity(clazz, true, false)
            .addProjection(AuditEntity.property("originalId." + idName).distinct())
            .add(AuditEntity.revisionProperty("userName").eq(username))
            .add(AuditEntity.revisionType().eq(RevisionType.ADD));
    return query.getResultList();
}

From source file:org.jboss.pressgang.ccms.filter.utils.EntityUtilities.java

License:Open Source License

@SuppressWarnings("unchecked")
public static <T extends AuditedEntity> List<Integer> getEditedBy(final EntityManager entityManager,
        final Class<T> clazz, final String idName, final String username) {
    final AuditReader reader = AuditReaderFactory.get(entityManager);
    final AuditQuery query = reader.createQuery().forRevisionsOfEntity(clazz, true, false)
            .addProjection(AuditEntity.property("originalId." + idName).distinct())
            .add(AuditEntity.revisionProperty("userName").eq(username))
            .add(AuditEntity.revisionType().eq(RevisionType.MOD));
    return query.getResultList();
}