Example usage for org.hibernate.envers.query AuditQuery getSingleResult

List of usage examples for org.hibernate.envers.query AuditQuery getSingleResult

Introduction

In this page you can find the example usage for org.hibernate.envers.query AuditQuery getSingleResult.

Prototype

Object getSingleResult() throws AuditException, NonUniqueResultException, NoResultException;

Source Link

Usage

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

License:Open Source License

/**
 * @param repositoryId/*  w ww .j a  v  a 2s .  co m*/
 * @param date
 * @return
 * @throws ConfigException
 */
public Repository getRepository(final Long repositoryId, final Date date) throws ConfigException {
    if (Utils.anyNull(repositoryId)) {
        throw new ConfigException(Error.Code.MISSING_PARAMS);
    }

    if (null == date) {
        return get(Repository.class, repositoryId);
    }

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

    AuditQuery query = reader.createQuery().forEntitiesAtRevision(Repository.class, rev);
    query.add(AuditEntity.id().eq(repositoryId));

    try {
        return (Repository) 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 CtxLevel getLevel(final String levelName, final Depth depth, final Repository repository,
        final Date time) throws ConfigException {
    if (Utils.anyNull(levelName, repository)) {
        return null;
    }//from w  w w. j  ava  2  s  .  co  m

    if (null == time) {
        try {
            String levelUpper = levelName.toUpperCase();

            return (CtxLevel) em.createNamedQuery("Level.getByName").setLockMode(LockModeType.NONE)
                    .setParameter("repository", repository).setParameter("name", levelUpper)
                    .setParameter("depth", depth).getSingleResult();
        } catch (NoResultException e) {
            return null;
        } catch (Exception e) {
            handleException(e);
        }

        return null;
    }

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

    // ToDo will not return deleted level
    AuditQuery query = reader.createQuery().forEntitiesAtRevision(CtxLevel.class, rev);
    query.add(AuditEntity.property("repository").eq(repository));
    query.add(AuditEntity.property("name").eq(levelName));
    query.add(AuditEntity.property("depth").eq(depth));

    try {
        return (CtxLevel) 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 Pair<PropertyKey, Collection<Property>> getPropertiesForKey(final Repository repository, final Date date,
        String key) throws ConfigException {
    AuditReader reader = AuditReaderFactory.get(em);
    Number rev = reader.getRevisionNumberForDate(null == date ? new Date() : date);

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

    PropertyKey propertyKey;/*from w  w  w  .  j  a va  2s  .co  m*/
    try {
        propertyKey = (PropertyKey) kq.getSingleResult();
    } catch (NoResultException e) {
        return null;
    }

    AuditQuery query = reader.createQuery().forEntitiesAtRevision(Property.class, rev);
    query.add(AuditEntity.property("repository").eq(repository));
    query.add(AuditEntity.relatedId("propertyKey").eq(propertyKey.getId()));

    Collection<Property> properties = query.getResultList();
    propertyKey.propertyCount = properties.size();

    return new Pair(propertyKey, properties);
}

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

License:Open Source License

/**
 * Returns the key from a specific date/*www . j  av a2s . com*/
 *
 * @param repository
 * @param key
 * @param date
 * @return
 */
public PropertyKey getKey(final Repository repository, final String key, final Date date) {
    if (null == repository || Utils.isBlank(key)) {
        return null;
    }

    try {
        if (null == date) {
            return (PropertyKey) em.createNamedQuery("Key.getByKey").setLockMode(LockModeType.NONE)
                    .setParameter("key", key.toUpperCase()).setParameter("repository", repository)
                    .getSingleResult();
        }

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

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

        return (PropertyKey) 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 SecurityProfile getSecurityProfile(final Repository repository, final Date date, final String spName)
        throws ConfigException {
    try {//www.j a v a 2  s.com
        if (null == date) {
            return (SecurityProfile) em.createNamedQuery("SecurityProfile.byName")
                    .setLockMode(LockModeType.NONE).setParameter("repository", repository)
                    .setParameter("name", spName).getSingleResult();
        }

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

        AuditQuery kq = reader.createQuery().forEntitiesAtRevision(SecurityProfile.class, rev);
        kq.add(AuditEntity.property("repository").eq(repository));
        kq.add(AuditEntity.property("name").eq(spName));

        SecurityProfile sp = (SecurityProfile) kq.getSingleResult();
        return sp;
    } 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 Property getAuditProperty(final Repository repository, final UserAccount user, final long propertyId,
        final long revId) throws ConfigException {
    try {/*from w  ww  .j  av  a  2s. 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   ww  w.j  av a 2s .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  .  j a  v a  2s  .  co m

    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 RepoFile getAuditConfigFile(final UserAccount user, final Repository repository, final Long fileId,
        final Long revId) throws ConfigException {
    try {/* w  w w  .  j  ava2  s .  co 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:fr.mcc.ginco.audit.csv.readers.ThesaurusTermAuditReader.java

License:CeCILL license

/**
 * Builds the revision lines matching the events of term lexical value change for terms in the given language
 * @param reader/*from ww w  . j av  a 2 s  . c o m*/
 * @param thesaurus the thesaurus we are searching in 
 * @param startDate the start date of events
 * @return
 */
public List<JournalLine> getTermLexicalValueChanged(Thesaurus thesaurus, Date startDate) {
    List<JournalLine> allEvents = new ArrayList<JournalLine>();

    try {
        AuditQuery lexicalValueChangedQuery = auditQueryBuilder.getPropertyChangedQueryOnUpdate(thesaurus,
                startDate, ThesaurusTerm.class, "lexicalValue");
        List<Object[]> allLexicalValueChanges = lexicalValueChangedQuery.getResultList();
        for (Object[] revisionData : allLexicalValueChanges) {
            ThesaurusTerm term = (ThesaurusTerm) revisionData[0];
            GincoRevEntity revision = (GincoRevEntity) revisionData[1];
            String oldLexicalValue = "";
            AuditQuery previousElementQuery = auditQueryBuilder.getPreviousVersionQuery(ThesaurusTerm.class,
                    term.getIdentifier(), revision.getId());
            Number previousRevision = (Number) previousElementQuery.getSingleResult();
            if (previousRevision != null) {
                ThesaurusTerm previousTerm = readerService.getAuditReader().find(ThesaurusTerm.class,
                        term.getIdentifier(), previousRevision);
                oldLexicalValue = previousTerm.getLexicalValue();
            }

            JournalLine line = journalLineBuilder.buildTermLexicalValueChangedLine(term, revision,
                    oldLexicalValue);

            allEvents.add(line);
        }
    } catch (AuditException ae) {
        throw new TechnicalException("Error getting term lexical value changed event ", ae);
    }
    return allEvents;
}