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

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

Introduction

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

Prototype

public static AuditProperty<Object> property(String propertyName) 

Source Link

Document

Create restrictions, projections and specify order for a property of an audited entity.

Usage

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));
            }/* ww  w  .j  a  va2  s. c  o  m*/
        }
    }

    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.devgateway.eudevfin.financial.test.storage.RevisionsTest.java

License:Open Source License

/**
 * Showing 2 ways of getting a revision number. The test compares these 2 revision numbers.
 *//*  www.  ja  v  a2  s .  co  m*/
@Test
public void testRevisionNumbers() {
    final Long modifiedTxId = this.storageHelper.modifyOrgAndAmountOfTransaction();

    AuditQuery auditQuery = this.auditReader.createQuery()
            .forRevisionsOfEntity(FinancialTransaction.class, false, false)
            .add(AuditEntity.id().eq(modifiedTxId))
            .add(AuditEntity.property("donorProjectNumber").hasNotChanged())
            .addProjection(AuditEntity.revisionNumber().max());
    final Number num1 = (Number) auditQuery.getSingleResult();
    logger.info("Last revision for a financial tx with unchanged description is: " + num1);

    auditQuery = this.auditReader.createQuery().forRevisionsOfEntity(Organization.class, false, false)
            .add(AuditEntity.property("code").hasChanged()).add(AuditEntity.revisionNumber().maximize());
    final Object[] oArray = (Object[]) auditQuery.getSingleResult();
    final DefaultTrackingModifiedEntitiesRevisionEntity trackingObject = (DefaultTrackingModifiedEntitiesRevisionEntity) oArray[1];
    logger.info("Last revision for an org with changed name is: " + trackingObject.getId());

    assertEquals(num1, trackingObject.getId());

}

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

License:Open Source License

/**
 * @param parameters//from   ww  w.  ja  v a  2s .  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   ww  w. j  a va  2 s . c  om
        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.pnc.datastore.repositories.BuildConfigurationAuditedRepositoryImpl.java

License:Open Source License

@Override
public List<BuildConfigurationAudited> searchForBuildConfigurationName(String buildConfigurationName) {
    List<Object[]> result = AuditReaderFactory.get(entityManager).createQuery()
            .forRevisionsOfEntity(BuildConfiguration.class, false, false)
            .add(AuditEntity.property("name").like(buildConfigurationName))
            .addOrder(AuditEntity.revisionNumber().desc()).getResultList();
    List<BuildRecord> emptyList = Collections.EMPTY_LIST;
    return result.stream().map(o -> createAudited(o[0], o[1], emptyList)).collect(Collectors.toList());
}

From source file:org.jboss.pnc.rest.provider.BuildRecordProvider.java

License:Open Source License

public CollectionInfo<BuildRecordRest> getAllForConfigurationOrProjectName(int pageIndex, int pageSize,
        String sortingRsql, String query, String name) {

    List<Project> projectsMatchingName = projectRepository
            .queryWithPredicates(ProjectPredicates.searchByProjectName(name));

    AuditDisjunction disjunction = AuditEntity.disjunction();
    projectsMatchingName.forEach(project -> {
        disjunction.add(AuditEntity.relatedId("project").eq(project.getId()));
    });/*  w  w  w.  jav  a  2 s.c om*/
    disjunction.add(AuditEntity.property("name").like(name));

    List<Object[]> buildConfigurationRevisions = AuditReaderFactory.get(entityManager).createQuery()
            .forRevisionsOfEntity(BuildConfiguration.class, false, false).add(disjunction)
            .addOrder(AuditEntity.revisionNumber().desc()).getResultList();

    return queryForBuildRecords(pageIndex, pageSize, sortingRsql, query, buildConfigurationRevisions);
}

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