List of usage examples for org.hibernate.envers.query AuditEntity property
public static AuditProperty<Object> property(String propertyName)
From source file:br.ufac.sion.service.AuditoriaService.java
public Set<AuditoriaDTO> findAllRevisions(FiltroAuditoria filtro) throws NegocioException { if (filtro.getDataInicio() != null && filtro.getDataFim() != null) { if (!filtro.getDataFim().isAfter(filtro.getDataInicio())) { throw new NegocioException("A data de termino deve ser maior que a data de incio!"); }/* w ww . j ava2 s . c o m*/ } Set<AuditoriaDTO> dtos = new HashSet<>(); AuditReader reader = AuditReaderFactory.get(em); AuditQuery query = reader.createQuery().forRevisionsOfEntity(filtro.getClasse(), false, true); if (filtro.getDataInicio() != null) { query.add(AuditEntity.revisionProperty("timestamp") .gt(Timestamp.from(filtro.getDataInicio().toInstant(ZoneOffset.UTC)).getTime())); } if (filtro.getDataFim() != null) { query.add(AuditEntity.revisionProperty("timestamp") .lt(Timestamp.from(filtro.getDataFim().toInstant(ZoneOffset.UTC)).getTime())); } if (StringUtils.isNotEmpty(filtro.getLogin())) { query.add(AuditEntity.revisionProperty("username").ilike(filtro.getLogin(), MatchMode.EXACT)); } if (filtro.getTiposRevisao().length > 0) { System.out.println("entra id tipo revisao"); query.add(AuditEntity.property("REVTYPE").in(filtro.getTiposRevisao())); } List<Object[]> result = query.getResultList(); for (Object[] o : result) { try { // Object instancia = filtro.getClass().cast(o[0]); Object instancia = Class.forName(filtro.getClasse().getName()).cast(o[0]); // Method metodo; // metodo = instancia.getClass().getMethod("getId"); // Long id = (Long) metodo.invoke(instancia); CustomRevisionEntity revision = (CustomRevisionEntity) o[1]; RevisionType revisionType = (RevisionType) o[2]; Instant instant = Instant.ofEpochMilli(revision.getTimestamp()); AuditoriaDTO dto = new AuditoriaDTO(instancia, revisionType, filtro.getEntidade(), revision); dtos.add(dto); } catch (Exception ex) { throw new NegocioException(ex.getMessage()); } } return dtos; }
From source file:com.actelion.research.spiritcore.services.dao.DAORevision.java
License:Open Source License
private static List<Object[]> queryForRevisions(AuditReader reader, Set<Class<?>> entityClasses, int minRev, int maxRev, String userFilter, int sid, String studyIdFilter) { List<Object[]> res = new ArrayList<>(); LoggerFactory.getLogger(DAORevision.class).debug("queryForRevisions " + entityClasses + " " + userFilter + " " + sid + " " + studyIdFilter + " " + minRev + " " + maxRev); //Find the study Id from the studyId (the study may have been deleted) if (sid <= 0 && studyIdFilter != null && studyIdFilter.length() > 0) { AuditQuery query = reader.createQuery().forRevisionsOfEntity(Study.class, false, true) .add(AuditEntity.revisionType().eq(RevisionType.ADD)) .add(AuditEntity.property("studyId").eq(studyIdFilter)); List<Object[]> array = query.getResultList(); for (Object[] a : array) { Study entity = (Study) a[0]; sid = entity.getId();/* www.j a v a2 s . c om*/ break; } if (sid <= 0) return res; } for (Class<?> claz : entityClasses) { AuditQuery query = reader.createQuery().forRevisionsOfEntity(claz, false, true) .add(AuditEntity.revisionNumber().between(minRev, maxRev)); if (userFilter != null && userFilter.length() > 0 && (claz == Result.class || claz == Biosample.class || claz == Study.class || claz == Location.class)) { query = query.add(AuditEntity.property("updUser").eq(userFilter)); } if (sid > 0) { //If a studyId filter is given, query the properyId directly if (claz == Study.class) { query = query.add(AuditEntity.property("id").eq(sid)); } else if (claz == Biosample.class) { query = query.add(AuditEntity.property("inheritedStudy").eq(new Study(sid))); } else if (claz == Result.class) { query = query.add(AuditEntity.property("study").eq(new Study(sid))); } else { continue; } } res.addAll(query.getResultList()); } return res; }
From source file:com.confighub.core.store.Store.java
License:Open Source License
/** * @param user/*from ww w . j a v a 2 s . c om*/ * @param repository * @param searchTerm * @return Map<PropertyKey , Collection < Property>> of keys and values that contain the searchTerm * @throws ConfigException */ public Map<PropertyKey, Collection<Property>> searchKeysAndValues(final UserAccount user, final Repository repository, final Date dateObj, final String searchTerm) throws ConfigException { if (Utils.anyNull(repository)) { throw new ConfigException(Error.Code.MISSING_PARAMS); } if (!repository.hasReadAccess(user)) { throw new ConfigException(Error.Code.USER_ACCESS_DENIED); } List<PropertyKey> keys = null; List<Property> props = null; if (null == dateObj) { try { keys = em.createNamedQuery("Search.keysAndComments").setLockMode(LockModeType.NONE) .setParameter("repository", repository) .setParameter("searchTerm", "%" + searchTerm.toUpperCase() + "%").getResultList(); } catch (NoResultException ignore) { } catch (Exception e) { handleException(e); } try { props = em.createNamedQuery("Search.values").setLockMode(LockModeType.NONE) .setParameter("repository", repository) .setParameter("searchTerm", "%" + searchTerm.toUpperCase() + "%").getResultList(); } catch (NoResultException ignore) { } catch (Exception e) { handleException(e); } } else { AuditReader reader = AuditReaderFactory.get(em); Number rev = reader.getRevisionNumberForDate(dateObj); AuditQuery query = reader.createQuery().forEntitiesAtRevision(PropertyKey.class, rev); query.add(AuditEntity.property("repository").eq(repository)); query.add(AuditEntity.or(AuditEntity.property("key").ilike("%" + searchTerm + "%"), AuditEntity.property("readme").ilike("%" + searchTerm + "%"))); keys = query.getResultList(); query = reader.createQuery().forEntitiesAtRevision(Property.class, rev); query.add(AuditEntity.property("repository").eq(repository)); query.add(AuditEntity.property("value").ilike("%" + searchTerm + "%")); props = query.getResultList(); } Map<PropertyKey, Collection<Property>> keyListMap = new HashMap<>(); if (null != keys) { keys.forEach(k -> keyListMap.put(k, null)); } if (null != props) { props.forEach(p -> { PropertyKey key = p.getPropertyKey(); if (keyListMap.containsKey(key)) { Collection<Property> ps = keyListMap.get(key); if (null == ps) { ps = new ArrayList<>(); keyListMap.put(key, ps); } ps.add(p); } else { ArrayList<Property> ps = new ArrayList<>(); ps.add(p); keyListMap.put(key, ps); } }); } return keyListMap; }
From source file:com.confighub.core.store.Store.java
License:Open Source License
/** * Get levels at a specific point in time. * * @param repository To which levels are assigned * @param time At the time levels were current * @return Collection of Levels from that time * @throws ConfigException Is thrown if there were problems fetching records *///from w w w . ja v a 2s .co m public Collection<CtxLevel> getLevels(final Repository repository, final Date time) throws ConfigException { AuditReader reader = AuditReaderFactory.get(em); Number rev = reader.getRevisionNumberForDate(time); AuditQuery query = reader.createQuery().forEntitiesAtRevision(CtxLevel.class, rev); query.add(AuditEntity.property("repository").eq(repository)); return query.getResultList(); }
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 www . j a v a2s.c om 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
/** * Get properties at a specific point in time. * * @param repository To which levels are assigned * @param date At the time levels were current * @return Collection of Levels from that time * @throws ConfigException Is thrown if there were problems fetching records *//*w ww . j a va2 s . c o m*/ public Collection<Property> getProperties(final Repository repository, final Date date) throws ConfigException { AuditReader reader = AuditReaderFactory.get(em); Number rev = reader.getRevisionNumberForDate(date); AuditQuery query = reader.createQuery().forEntitiesAtRevision(Property.class, rev); query.add(AuditEntity.property("repository").eq(repository)); return query.getResultList(); }
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 . ja v a 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/* ww w. j ava 2 s. c om*/ * * @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 Collection<PropertyKey> getPropertiesKeys(final Repository repository, final Date time) throws ConfigException { 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)); return query.getResultList(); }
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 {/*from w w w .j a v a 2s .c o m*/ 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; }