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

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

Introduction

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

Prototype

public static AuditId id() 

Source Link

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 {/* w ww  .  j  a  va  2 s .c  om*/
        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 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   w w w.j  a  v a 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 RepoFile getAuditConfigFile(final UserAccount user, final Repository repository, final Long fileId,
        final Long revId) throws ConfigException {
    try {/*from  www.  j  a v  a2s .  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.sdm.core.hibernate.dao.AuditDAO.java

private AuditQuery getQueryById(Class entityClass, Object id) {
    return reader.createQuery().forRevisionsOfEntity(entityClass, false, true)
            .addOrder(AuditEntity.revisionNumber().desc()).add(AuditEntity.id().eq(id));
}

From source file:com.webbfontaine.valuewebb.envers.AuditedEntityLoader.java

License:Open Source License

private SimpleDocument getAuditRecord(Class entityClass) {
    Integer revNum = Integer.parseInt(this.revNum);
    Long entityId = Long.valueOf(this.entityId);

    Object auditRecord;/*from ww w  .  j  a  v a 2s  . com*/
    AuditReader reader = AuditReaderFactory.get(Utils.getEntityManager());

    AuditQuery auditQuery = reader.createQuery().forEntitiesAtRevision(entityClass, revNum)
            .add(AuditEntity.revisionNumber().eq(revNum)).add(AuditEntity.id().eq(entityId));
    List result = auditQuery.getResultList();
    if (result.isEmpty()) {
        auditQuery = reader.createQuery().forEntitiesAtRevision(entityClass, revNum)
                .add(AuditEntity.revisionNumber().le(revNum)).add(AuditEntity.id().eq(entityId));
        auditRecord = auditQuery.getResultList().get(0);
    } else {
        auditRecord = result.get(0);
    }

    SimpleDocument simpleDocument = null;

    if (auditRecord instanceof SimpleDocument) {
        simpleDocument = (SimpleDocument) auditRecord;
    } else {
        LOGGER.error("Audited entity of class {} does not implement necessary logic of {}",
                auditRecord.getClass().getName(), SimpleDocument.class.getName());
    }

    return simpleDocument;
}

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

License:Open Source License

/**
 * Loads previous versions of subtitle items
 *
 * @param results list of currently loaded Translation Results
 * @param date date before which the translation results to load were
 * created//w w  w. ja  v  a  2 s  .  c  o m
 * @return returns list of old Translation Results created before given date
 */
public List<TranslationResult> loadPreviousVersions(List<TranslationResult> results, Date date) {
    AuditReader auditReader = AuditReaderFactory.get(usHibernateUtil.getSessionWithActiveTransaction());
    List<TranslationResult> tResults = new ArrayList<TranslationResult>();

    try {

        Number revisionNumber = auditReader.getRevisionNumberForDate(date);

        logger.log(Logger.Level.ERROR, revisionNumber);

        for (TranslationResult result : results) {
            List resultList = auditReader.createQuery()
                    .forRevisionsOfEntity(USTranslationResult.class, true, false)
                    .add(AuditEntity.id().eq(result.getId()))
                    .add(AuditEntity.revisionNumber().le(revisionNumber))
                    .addOrder(AuditEntity.revisionNumber().desc()).getResultList();

            if (resultList != null && !resultList.isEmpty()) {
                USTranslationResult singleResult = (USTranslationResult) resultList.get(0);
                tResults.add(singleResult.getTranslationResult());
            }
        }

    } catch (RevisionDoesNotExistException e) {
        logger.log(Logger.Level.ERROR, e.getDate() + " " + e.getRevision());
    }

    return tResults;

}

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  ava 2 s .  c  om*/
 *
 * @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);
}

From source file:de.crowdcode.bitemporal.example.AddressRepository.java

License:Apache License

public Number findRevisionNumberByAddressIdAndRevisionNumber(Long addressId, Number revisionNumber) {
    Number revision = (Number) getAuditReader().createQuery()
            .forRevisionsOfEntity(AddressImpl.class, false, true)
            .addProjection(AuditEntity.revisionNumber().min()).add(AuditEntity.id().eq(addressId))
            .add(AuditEntity.revisionNumber().gt(revisionNumber)).getSingleResult();
    return revision;
}

From source file:de.iteratec.iteraplan.persistence.dao.HistoryDAOImpl.java

License:Open Source License

public <T extends BuildingBlock> int getHistoryLengthFor(Class<T> entityClass, Integer id, DateTime fromDate,
        DateTime toDate) {/*from w w w .  j av  a  2 s  . com*/
    Preconditions.checkArgument(id != null && id.intValue() >= 0, "Param id is invalid, should be >=0");
    AuditReader auditReader = getAuditReader();
    AuditQuery totalCountQuery = auditReader.createQuery().forRevisionsOfEntity(entityClass, false, false)
            .add(AuditEntity.id().eq(id));

    if (fromDate != null) {
        Long fromDateLong = Long.valueOf(fromDate.getMillis());
        totalCountQuery.add(AuditEntity.revisionProperty(TIMESTAMP_PROPERTY).ge(fromDateLong));
    }
    if (toDate != null) {
        Long toDateLong = Long.valueOf(toDate.getMillis());
        totalCountQuery.add(AuditEntity.revisionProperty(TIMESTAMP_PROPERTY).le(toDateLong));
    }

    // Can't get the total count from the other query because it might be limited to results of the current page
    return totalCountQuery.getResultList().size();
}

From source file:de.iteratec.iteraplan.persistence.dao.HistoryDAOImpl.java

License:Open Source License

public <T extends BuildingBlock> T getPreceedingRevisionFor(Class<T> entityClass, Integer bbId,
        Integer currentRevId) {/*from   w ww .  j av  a2  s.  co  m*/
    AuditReader auditReader = getAuditReader();

    // Query to get max Rev less than this one (Should exist, since this is a MOD, but might not
    Number prevRev = (Number) auditReader.createQuery().forRevisionsOfEntity(entityClass, true, true)
            .addProjection(AuditEntity.revisionNumber().max()).add(AuditEntity.id().eq(bbId))
            .add(AuditEntity.revisionNumber().lt(currentRevId)).getSingleResult();

    // If History recording was off during the Initial creation of this BB, this MOD rev might be the
    // first known rev
    if (prevRev == null) {
        return null;
    }

    return auditReader.find(entityClass, bbId, prevRev);
}