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:com.confighub.core.store.Store.java

License:Open Source License

public Property getAuditProperty(final Repository repository, final UserAccount user, final long propertyId,
        final long revId) throws ConfigException {
    try {/*from  ww w .  jav a2  s  .  c  o  m*/
        if (!repository.hasReadAccess(user)) {
            throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
        }

        AuditReader reader = AuditReaderFactory.get(em);
        AuditQuery query = reader.createQuery().forRevisionsOfEntity(Property.class, true, true)
                .add(AuditEntity.revisionNumber().ge(revId)).add(AuditEntity.revisionNumber().le(revId))
                .add(AuditEntity.property("repository").eq(repository)).add(AuditEntity.id().eq(propertyId));

        return (Property) query.getSingleResult();
    } catch (NoResultException e) {
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public AbsoluteFilePath getAbsFilePath(final Repository repository, final String absPath, final Date date) {
    if (null == repository || Utils.isBlank(absPath)) {
        return null;
    }//from   w  w  w .ja va2 s . co  m

    try {
        if (null == date) {
            return (AbsoluteFilePath) em.createNamedQuery("AbsFilePath.getByAbsPath")
                    .setLockMode(LockModeType.NONE).setParameter("absPath", absPath)
                    .setParameter("repository", repository).getSingleResult();
        }

        AuditReader reader = AuditReaderFactory.get(em);
        Number rev = reader.getRevisionNumberForDate(null == date ? new Date() : date);

        AuditQuery kq = reader.createQuery().forEntitiesAtRevision(AbsoluteFilePath.class, rev);
        kq.add(AuditEntity.property("repository").eq(repository));
        kq.add(AuditEntity.property("absPath").eq(absPath));

        return (AbsoluteFilePath) kq.getSingleResult();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public RepoFile getRepoFile(final UserAccount user, final Repository repository, final Long fileId,
        final Date time) throws ConfigException {
    if (!repository.hasReadAccess(user)) {
        throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
    }//from  www.java 2 s  . com

    if (null == time) {
        RepoFile file = get(RepoFile.class, fileId);
        if (file.getRepository().equals(repository)) {
            return file;
        } else {
            throw new ConfigException(Error.Code.FILE_NOT_FOUND);
        }
    }

    AuditReader reader = AuditReaderFactory.get(em);
    Number rev = reader.getRevisionNumberForDate(time);

    AuditQuery query = reader.createQuery().forEntitiesAtRevision(RepoFile.class, rev);
    query.add(AuditEntity.property("repository").eq(repository));
    query.add(AuditEntity.id().eq(fileId));

    try {
        return (RepoFile) query.getSingleResult();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public Collection<RepoFile> getRepoFilesForAPI(final Repository repository, final Date date)
        throws ConfigException {
    if (null == repository) {
        throw new ConfigException(Error.Code.REPOSITORY_NOT_FOUND);
    }// w w  w . j a v a2  s . co  m

    if (null == date) {
        return repository.getFiles();
    }

    try {
        AuditReader reader = AuditReaderFactory.get(em);
        Number rev = reader.getRevisionNumberForDate(date);

        AuditQuery query = reader.createQuery().forEntitiesAtRevision(RepoFile.class, rev)
                .add(AuditEntity.property("repository").eq(repository));

        return query.getResultList();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public Collection<RepoFile> getRepoFiles(final Repository repository, final UserAccount user,
        final String searchTerm, final Date date) throws ConfigException {
    if (Utils.anyNull(repository)) {
        throw new ConfigException(Error.Code.MISSING_PARAMS);
    }// w  w  w.j ava 2s.c  o  m

    //        if (!repository.isDemo() && null == user)
    //            throw new ConfigException(Error.Code.MISSING_PARAMS);
    //
    if (!repository.isDemo() && !repository.hasReadAccess(user)) {
        throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
    }

    if (null == date) {
        if (Utils.isBlank(searchTerm)) {
            return repository.getFiles();
        } else {
            try {
                return em.createNamedQuery("RepoFile.search").setLockMode(LockModeType.NONE)
                        .setParameter("repository", repository)
                        .setParameter("searchTerm", "%" + searchTerm + "%").getResultList();
            } catch (NoResultException e) {
                return null;
            } catch (Exception e) {
                handleException(e);
                return null;
            }
        }
    } else {
        try {
            AuditReader reader = AuditReaderFactory.get(em);
            Number rev = reader.getRevisionNumberForDate(date);

            AuditQuery query = reader.createQuery().forEntitiesAtRevision(RepoFile.class, rev)
                    .add(AuditEntity.property("repository").eq(repository));

            if (!Utils.isBlank(searchTerm)) {
                query.add(AuditEntity.property("content").like("%" + searchTerm + "%"));
            }

            return query.getResultList();
        } catch (NoResultException e) {
            return null;
        } catch (Exception e) {
            handleException(e);
            return null;
        }
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public RepoFile getAuditConfigFile(final UserAccount user, final Repository repository, final Long fileId,
        final Long revId) throws ConfigException {
    try {/*from  w  ww .j a  v a 2 s.c o m*/
        if (!repository.hasReadAccess(user)) {
            throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
        }

        AuditReader reader = AuditReaderFactory.get(em);

        AuditQuery query = reader.createQuery().forRevisionsOfEntity(RepoFile.class, true, true)
                .add(AuditEntity.revisionNumber().ge(revId)).add(AuditEntity.revisionNumber().le(revId))
                .add(AuditEntity.property("repository").eq(repository)).add(AuditEntity.id().eq(fileId));

        return (RepoFile) query.getSingleResult();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public List<PropertyKey> getKeys(final UserAccount user, final Repository repository,
        final Collection<String> keys, final Date time) throws ConfigException {
    if (Utils.anyNull(repository, keys)) {
        throw new ConfigException(Error.Code.MISSING_PARAMS);
    }/*ww w  .  j a va 2 s .  com*/

    if (!repository.hasReadAccess(user)) {
        throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
    }

    if (null == time) {
        Collection<String> upperKeys = new ArrayList<>();
        keys.forEach(k -> upperKeys.add(k.toUpperCase()));

        try {
            return em.createNamedQuery("Key.getKeys").setLockMode(LockModeType.NONE)
                    .setParameter("repository", repository).setParameter("keys", upperKeys).getResultList();
        } catch (NoResultException e) {
            return Collections.EMPTY_LIST;
        } catch (Exception e) {
            handleException(e);
            return Collections.EMPTY_LIST;
        }
    }

    AuditReader reader = AuditReaderFactory.get(em);
    Number rev = reader.getRevisionNumberForDate(time);

    AuditQuery query = reader.createQuery().forEntitiesAtRevision(PropertyKey.class, rev);
    query.add(AuditEntity.property("repository").eq(repository));
    query.add(AuditEntity.property("key").in(keys));

    try {
        return query.getResultList();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.griffinslogistics.dao.DAO.java

@Override
public List getRevisions(Class aClass, Long id) {
    AuditReader auditReader = AuditReaderFactory.get(this.sessionFactory.getCurrentSession());
    AuditQuery query = auditReader.createQuery().forRevisionsOfEntity(aClass, false, true)
            .add(AuditEntity.property("id").eq(id)).addOrder(AuditEntity.revisionNumber().desc());
    List result = query.getResultList();

    return result;
}

From source file:com.impetus.ankush.common.service.ConfigurationManager.java

License:Open Source License

/**
 * Gets the configuration.//from w  w w  . jav a2  s .com
 * 
 * @param clusterId
 *            the cluster id
 * @return the configuration
 */
public List getConfiguration(Long clusterId) {
    try {
        AuditReader reader = AuditReaderFactory.get(HibernateUtils.getEntityManager());
        AuditQuery query = reader.createQuery().forRevisionsOfEntity(Configuration.class, false, true);

        // filter results besed on cluster id.
        query.add(AuditEntity.property(com.impetus.ankush2.constant.Constant.Keys.CLUSTERID).eq(clusterId));
        query.addOrder(
                AuditEntity.revisionProperty(com.impetus.ankush2.constant.Constant.Keys.TIMESTAMP).desc());

        // Getting Result list.
        List list = query.getResultList();

        // Creating List Object.
        List result = new ArrayList();
        for (Object object : list) {
            Object[] obj = (Object[]) object;
            Map map = new HashMap();
            // Mapping Revision Entity.
            DefaultRevisionEntity ri = (DefaultRevisionEntity) obj[1];
            map.putAll(JsonMapperUtil.mapFromObject(obj[0]));
            map.put(com.impetus.ankush2.constant.Constant.Keys.DATE, ri.getRevisionDate());
            map.put(com.impetus.ankush2.constant.Constant.Keys.REVISIONID, ri.getId());
            map.put(com.impetus.ankush2.constant.Constant.Keys.TYPE, obj[2]);
            result.add(map);
        }
        return result;
    } catch (Exception e) {
        LOG.error(e.getMessage(), e);
    }
    return null;

}

From source file:cz.filmtit.userspace.Session.java

License:Open Source License

/**
 * Loads old Subtitle Item for a given Translation Result created before
 * revision number/*from w w  w  .  j a  v a2s. c o  m*/
 *
 * @param result Translation Result of which to load old version
 * @param number Revision Number
 * @return returns an object containing old version of Translation Result
 * and number of revision at which it was created
 */
public AuditResponse loadOldTranslationResult(TranslationResult result, Number number) {
    AuditReader auditReader = AuditReaderFactory.get(usHibernateUtil.getSessionWithActiveTransaction());

    if (number == null) {
        number = Integer.MAX_VALUE;
    }

    Number revisionNumber = (Number) auditReader.createQuery()
            .forRevisionsOfEntity(USTranslationResult.class, true, false)
            .add(AuditEntity.id().eq(result.getId())).addProjection(AuditEntity.revisionNumber().max())
            .add(AuditEntity.revisionNumber().lt(number))
            .add(AuditEntity.or(AuditEntity.property("userTranslation").hasChanged(),
                    AuditEntity.property("posteditedString").hasChanged()))
            .getSingleResult();

    if (revisionNumber == null) {
        return new AuditResponse();
    }

    USTranslationResult singleResult = (USTranslationResult) auditReader.createQuery()
            .forEntitiesAtRevision(USTranslationResult.class, revisionNumber)
            .add(AuditEntity.id().eq(result.getId())).getSingleResult();

    if (singleResult == null) {
        return new AuditResponse();
    }

    logger.log(Logger.Level.ERROR, singleResult.getTranslationResult() + " " + revisionNumber);

    return new AuditResponse(singleResult.getTranslationResult(), revisionNumber);
}