List of usage examples for org.hibernate.envers.query AuditQuery getSingleResult
Object getSingleResult() throws AuditException, NonUniqueResultException, NoResultException;
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; }