Example usage for org.hibernate.envers AuditReader createQuery

List of usage examples for org.hibernate.envers AuditReader createQuery

Introduction

In this page you can find the example usage for org.hibernate.envers AuditReader createQuery.

Prototype

AuditQueryCreator createQuery();

Source Link

Document

Creates an audit query

Usage

From source file:love.sola.netsupport.sql.TableTicket.java

License:Open Source License

@SuppressWarnings("unchecked")
public static List<Object[]> track(int tid) {
    try (Session s = SQLCore.sf.openSession()) {
        AuditReader reader = getAuditReader(s);
        List<Object[]> resultList = reader.createQuery().forRevisionsOfEntity(Ticket.class, false, true)
                .addOrder(AuditEntity.revisionNumber().desc()).add(AuditEntity.id().eq(tid)).getResultList();
        return initializeTickets(resultList);
    }/*from ww w  . java  2s .  c  om*/
}

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

License:Open Source License

/** {@inheritDoc} */
@Override//from w w  w  .j a va  2 s  . c om
@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//from  ww w  .j a  v a  2 s . co m
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.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 ww.  j a va  2 s.  com
        }
    }

    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.models.HibernateAuditObjectModel.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
protected T load() {
    AuditReader auditReader = AuditReaderFactory.get(Databinder.getHibernateSession());
    AuditQuery query = auditReader.createQuery().forEntitiesAtRevision(objectClass, revision)
            .add(AuditEntity.id().eq(entityId));
    return (T) query.getSingleResult();
}

From source file:org.devgateway.toolkit.forms.wicket.page.RevisionsPage.java

License:Open Source License

/**
 * @param parameters/*ww w.  j  av  a 2 s .  c  o m*/
 */
public RevisionsPage(final PageParameters parameters) {
    super(parameters);

    final long entityId = parameters.get(WebConstants.PARAM_ID).toLong();
    String entityClass = parameters.get(WebConstants.PARAM_ENTITY_CLASS).toString();

    Class<?> clazz = null;
    try {
        clazz = Class.forName(entityClass);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    AuditReader reader = AuditReaderFactory.get(entityManager);

    AuditQuery query = reader.createQuery().forRevisionsOfEntity(clazz, false, true);
    query.add(AuditEntity.property("id").eq(entityId));

    List<?> resultList = query.getResultList();
    List<DefaultRevisionEntity> items = new ArrayList<>();
    for (Object item : resultList) {
        Object[] obj = (Object[]) item;
        items.add((DefaultRevisionEntity) obj[1]);
    }

    add(new ListView<DefaultRevisionEntity>("revisions", items) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<DefaultRevisionEntity> item) {
            final PageParameters pp = new PageParameters();
            pp.set(WebConstants.PARAM_REVISION_ID, item.getModelObject().getId());
            pp.set(WebConstants.PARAM_ID, entityId);

            item.add(new Label("revisionNumber", new PropertyModel<Integer>(item.getModel(), "id")));
            item.add(DateLabel.forDatePattern("revisionDate",
                    new PropertyModel<Date>(item.getModel(), "revisionDate"), "yyyy/MM/dd @HH:mm:ss z"));
        }
    });
}

From source file:org.gaia.dao.audit.AuditAccessor.java

License:Open Source License

public static List<Trade> getOldVersionList(Trade trade) {
    Session session = HibernateUtil.getSession();
    List<Trade> result = new ArrayList<>();
    try {//from  w  ww .  j  ava2s  . co  m
        if (trade != null) {
            result.add(trade);
            AuditReader reader = AuditReaderFactory.get(session);
            List<Object[]> prior_revision = (List<Object[]>) reader.createQuery()
                    .forRevisionsOfEntity(trade.getClass(), false, true)
                    .add(AuditEntity.property("tradeVersion").lt(trade.getTradeVersion()))
                    .add(AuditEntity.id().eq(trade.getId())).addOrder(AuditEntity.revisionNumber().desc())
                    .getResultList();
            for (Object[] objects : prior_revision) {
                Trade version = (Trade) objects[0];
                unProxyObject(version);
                result.add(version);
            }
        }
    } catch (ClassNotFoundException | IllegalAccessException | HibernateException | IllegalArgumentException
            | InvocationTargetException e) {
        logger.error(StringUtils.formatErrorMessage(e));
    } finally {
        session.close();
    }
    return result;
}

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();
}