List of usage examples for org.hibernate.criterion Restrictions or
public static LogicalExpression or(Criterion lhs, Criterion rhs)
From source file:edu.northwestern.bioinformatics.studycalendar.dao.SubjectDao.java
License:BSD License
/** * Finds the subjects doing a LIKE search with some search text for subject's firs name, middle name or last name. * * @param searchText the text we are searching with * @return a list of subjects found based on the search text *//*from w ww .java 2 s . c o m*/ @SuppressWarnings({ "unchecked" }) public List<Subject> searchByName(final String searchText) { return (List<Subject>) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(Subject.class); if (searchText != null) { String like = new StringBuilder().append("%").append(searchText.toLowerCase()).append("%") .toString(); criteria.add(Restrictions.or(Restrictions.or(Restrictions.ilike("firstName", like), Restrictions.ilike("lastName", like)), Restrictions.ilike("personId", like))); } return criteria.list(); } }); }
From source file:edu.ucsb.eucalyptus.cloud.ws.WalrusManager.java
License:Open Source License
public ListVersionsResponseType listVersions(ListVersionsType request) throws EucalyptusCloudException { ListVersionsResponseType reply = (ListVersionsResponseType) request.getReply(); String bucketName = request.getBucket(); Context ctx = Contexts.lookup(); Account account = ctx.getAccount();/*from w w w.jav a 2 s. c om*/ String prefix = request.getPrefix(); if (prefix == null) { prefix = ""; } String keyMarker = request.getKeyMarker(); String versionMarker = request.getVersionIdMarker(); int maxKeys = -1; String maxKeysString = request.getMaxKeys(); if (maxKeysString != null) { maxKeys = Integer.parseInt(maxKeysString); } else { maxKeys = WalrusProperties.MAX_KEYS; } String delimiter = request.getDelimiter(); EntityWrapper<BucketInfo> db = EntityWrapper.get(BucketInfo.class); BucketInfo bucketInfo = new BucketInfo(bucketName); bucketInfo.setHidden(false); List<BucketInfo> bucketList = db.queryEscape(bucketInfo); Hashtable<String, PrefixEntry> prefixes = new Hashtable<String, PrefixEntry>(); if (bucketList.size() > 0) { BucketInfo bucket = bucketList.get(0); BucketLogData logData = bucket.getLoggingEnabled() ? request.getLogData() : null; if (ctx.hasAdministrativePrivileges() || (bucket.canRead(account.getAccountNumber()) && (bucket.isGlobalRead() || Lookups.checkPrivilege(PolicySpec.S3_LISTBUCKETVERSIONS, PolicySpec.VENDOR_S3, PolicySpec.S3_RESOURCE_BUCKET, bucketName, null)))) { if (bucket.isVersioningDisabled()) { db.rollback(); throw new EucalyptusCloudException("Versioning has not been enabled for bucket: " + bucketName); } if (logData != null) { updateLogData(bucket, logData); reply.setLogData(logData); } if (Contexts.lookup().hasAdministrativePrivileges()) { try { if (bucketHasSnapshots(bucketName)) { db.rollback(); throw new NoSuchBucketException(bucketName); } } catch (Exception e) { db.rollback(); throw new EucalyptusCloudException(e); } } reply.setName(bucketName); reply.setIsTruncated(false); reply.setPrefix(prefix); if (maxKeys >= 0) { reply.setMaxKeys(maxKeys); } if (delimiter != null) { reply.setDelimiter(delimiter); } if (maxKeys == 0) { //No keys requested, so just return reply.setVersions(new ArrayList<VersionEntry>()); db.commit(); return reply; } final int queryStrideSize = maxKeys + 1; EntityWrapper<ObjectInfo> dbObject = db.recast(ObjectInfo.class); ObjectInfo searchObj = new ObjectInfo(); searchObj.setBucketName(bucketName); //searchObj.setLast(true); searchObj.setDeleted(false); Criteria objCriteria = dbObject.createCriteria(ObjectInfo.class); objCriteria.add(Example.create(searchObj)); objCriteria.addOrder(Order.asc("objectKey")); objCriteria.addOrder(Order.desc("lastModified")); objCriteria.setMaxResults(queryStrideSize); //add one to, hopefully, indicate truncation in one call if (keyMarker != null) { if (versionMarker != null) { Date resumeDate = null; try { ObjectInfo markerObj = new ObjectInfo(); markerObj.setBucketName(bucketName); markerObj.setVersionId(versionMarker); markerObj.setObjectKey(keyMarker); ObjectInfo lastFromPrevObj = dbObject.uniqueResultEscape(markerObj); if (lastFromPrevObj != null && lastFromPrevObj.getLastModified() != null) { resumeDate = lastFromPrevObj.getLastModified(); } else { throw new NoSuchEntityException("VersionIDMarker " + versionMarker + " does not match an existing object version"); } } catch (TransactionException e) { LOG.error(e); dbObject.rollback(); throw new EucalyptusCloudException("Next-Key-Marker or Next-Version-Id marker invalid"); } objCriteria.add(Restrictions.or( Restrictions.and(Restrictions.ge("objectKey", keyMarker), Restrictions.le("lastModified", resumeDate)), Restrictions.gt("objectKey", keyMarker))); } else { objCriteria.add(Restrictions.ge("objectKey", keyMarker)); } } if (prefix != null && !prefix.equals("")) { objCriteria.add(Restrictions.like("objectKey", prefix, MatchMode.START)); } List<ObjectInfo> objectInfos = null; int resultKeyCount = 0; String objectKey = null; String[] parts = null; String prefixString = null; ArrayList<VersionEntry> versions = new ArrayList<VersionEntry>(); //contents for reply ArrayList<DeleteMarkerEntry> deleteMarkers = new ArrayList<DeleteMarkerEntry>(); //delete markers for reply //Iterate over result sets of size maxkeys + 1 do { objectKey = null; parts = null; prefixString = null; if (resultKeyCount > 0) { //Start from end of last round-trip if necessary objCriteria.setFirstResult(queryStrideSize); } objectInfos = (List<ObjectInfo>) objCriteria.list(); if (objectInfos.size() > 0) { for (ObjectInfo objectInfo : objectInfos) { objectKey = objectInfo.getObjectKey(); //Look for Delete markers if (objectInfo.getDeleted()) { // } //Check if it will get aggregated as a commonprefix if (delimiter != null) { parts = objectKey.substring(prefix.length()).split(delimiter); if (parts.length > 1) { prefixString = parts[0] + delimiter; if (!prefixes.containsKey(prefixString)) { if (resultKeyCount == maxKeys) { //This is a new record, so we know we're truncating if this is true reply.setNextKeyMarker(objectKey); reply.setNextVersionIdMarker(objectInfo.getVersionId()); reply.setIsTruncated(true); resultKeyCount++; break; } prefixes.put(prefixString, new PrefixEntry(prefixString)); resultKeyCount++; //count the unique commonprefix as a single return entry } continue; } } if (resultKeyCount == maxKeys) { //This is a new (non-commonprefix) record, so we know we're truncating reply.setNextKeyMarker(objectKey); reply.setNextVersionIdMarker(objectInfo.getVersionId()); reply.setIsTruncated(true); resultKeyCount++; break; } if (!objectInfo.getDeleted()) { VersionEntry versionEntry = new VersionEntry(); versionEntry.setKey(objectKey); versionEntry.setVersionId(objectInfo.getVersionId()); versionEntry.setEtag(objectInfo.getEtag()); versionEntry .setLastModified(DateUtils.format(objectInfo.getLastModified().getTime(), DateUtils.ISO8601_DATETIME_PATTERN) + ".000Z"); try { String displayName = Accounts.lookupAccountById(objectInfo.getOwnerId()) .getName(); versionEntry .setOwner(new CanonicalUserType(objectInfo.getOwnerId(), displayName)); } catch (AuthException e) { db.rollback(); throw new AccessDeniedException("Bucket", bucketName, logData); } versionEntry.setSize(objectInfo.getSize()); versionEntry.setStorageClass(objectInfo.getStorageClass()); versionEntry.setIsLatest(objectInfo.getLast()); versions.add(versionEntry); } else { DeleteMarkerEntry deleteMarkerEntry = new DeleteMarkerEntry(); deleteMarkerEntry.setKey(objectKey); deleteMarkerEntry.setVersionId(objectInfo.getVersionId()); deleteMarkerEntry .setLastModified(DateUtils.format(objectInfo.getLastModified().getTime(), DateUtils.ISO8601_DATETIME_PATTERN) + ".000Z"); try { String ownerId = objectInfo.getOwnerId(); String displayName = Accounts.lookupAccountById(ownerId).getName(); deleteMarkerEntry.setOwner(new CanonicalUserType(ownerId, displayName)); } catch (AuthException e) { db.rollback(); throw new AccessDeniedException("Bucket", bucketName, logData); } deleteMarkerEntry.setIsLatest(objectInfo.getLast()); deleteMarkers.add(deleteMarkerEntry); } resultKeyCount++; } } if (resultKeyCount <= maxKeys && objectInfos.size() <= maxKeys) { break; } } while (resultKeyCount <= maxKeys); reply.setDeleteMarkers(deleteMarkers); reply.setVersions(versions); //Sort the prefixes from the hashtable and add to the reply if (prefixes != null && prefixes.size() > 0) { ArrayList<PrefixEntry> prefixList = new ArrayList<PrefixEntry>(); prefixList.addAll(prefixes.values()); Collections.sort(prefixList, new Comparator<PrefixEntry>() { public int compare(PrefixEntry e1, PrefixEntry e2) { return e1.getPrefix().compareTo(e2.getPrefix()); } }); reply.setCommonPrefixes(prefixList); } } else { db.rollback(); throw new AccessDeniedException("Bucket", bucketName, logData); } } else { db.rollback(); throw new NoSuchBucketException(bucketName); } db.commit(); return reply; }
From source file:edu.utah.further.core.data.hibernate.query.CriterionBuilderHibernateImpl.java
License:Apache License
/** * *//*from w w w . j a va2 s . co m*/ private void visitBinary() { final SearchType searchType = criterion.getSearchType(); switch (searchType) { case INTERSECTION: case AND: { result = Restrictions.and(convertedCriteria.get(0), convertedCriteria.get(1)); break; } case UNION: case OR: { result = Restrictions.or(convertedCriteria.get(0), convertedCriteria.get(1)); break; } default: { throw new BusinessRuleException(unsupportedMessage(searchType)); } } }
From source file:ee.ria.xroad.opmonitordaemon.OperationalDataRecordManager.java
License:Open Source License
private static void configureClientAndServiceProviderFilters(Criteria criteria, ClientId client, ClientId serviceProvider) {/*w w w. ja va 2 s .c om*/ if (client != null) { if (serviceProvider != null) { // Filter by both the client and the service provider // using the fields corresponding to their roles. criteria.add(Restrictions.and( Restrictions.or(getMemberCriterion(client, true), getMemberCriterion(client, false)), getMemberCriterion(serviceProvider, false))); } else { // Filter by the client in either roles (client or // service provider). criteria.add(Restrictions.or(getMemberCriterion(client, true), getMemberCriterion(client, false))); } } else { if (serviceProvider != null) { // Filter by the service provider in its respective role. criteria.add(getMemberCriterion(serviceProvider, false)); } } }
From source file:es.emergya.bbdd.dao.IncidenciaHome.java
License:Open Source License
/** * Devuelve todas las incidencias que estuvieron abiertas en el intervalo * pasado y su posicin coincide con alguna de las zonas indicadas. Si no se * pasan zonas, la posicin no se utilizar como criterio para obtener la * lista de incidencias./*from w w w .j ava2 s . c o m*/ * * @param nombreUsuario * el nombre de usuario del usuario que realiza la consulta. * @param fechaInicio * el instante inicial a usar en el filtro. * @param fechaFinal * el instante final a usar en el filtro. * @param zonas * Lista de zonas en las que deben estar las incidencias. * @return La lista de zonas que estuvieron abiertas en algn momento del * periodo en alguna de las zonas pasadas. */ @Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = true, rollbackFor = Throwable.class) public List<Incidencia> getIncidenciasEnPeriodo(String nombreUsuario, Calendar fechaInicio, Calendar fechaFinal) { Date inicio = null; Date fin = null; if (fechaInicio != null) { inicio = fechaInicio.getTime(); } else { return new ArrayList<Incidencia>(0); } if (fechaFinal != null) { fin = fechaFinal.getTime(); } else { return new ArrayList<Incidencia>(0); } Criteria c = getSession().createCriteria(Incidencia.class).addOrder(Order.asc("referenciaHumana")) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY) .createAlias("street", "st", Criteria.LEFT_JOIN).createAlias("portal", "pt", Criteria.LEFT_JOIN); if (fin != null) { c = c.add(Restrictions.le("fechaCreacion", fin)); } if (inicio != null) { c = c.add(Restrictions.or(Restrictions.ge("fechaCierre", inicio), Property.forName("fechaCierre").isNull())); } log.trace("Criteria final: " + c); return c.list(); }
From source file:es.emergya.bbdd.dao.RecursoHome.java
License:Open Source License
@SuppressWarnings("unchecked") @Transactional(readOnly = true, rollbackFor = Throwable.class, propagation = Propagation.REQUIRED) public Recurso[] getNotAsigned(Patrulla p) { Recurso[] res = new Recurso[0]; try {//from w w w . j a v a2 s. c o m if (p == null || p.getId() == null) { return getByFilter(filter).toArray(new Recurso[0]); } log.debug("getNotAsigned(" + p.getId() + ")"); Session currentSession = getSession(); currentSession.clear(); Criterion rhs = Restrictions.isNull("patrullas"); Criterion lhs = Restrictions.ne("patrullas", currentSession.load(Patrulla.class, p.getId())); Criteria criteria = currentSession.createCriteria(Recurso.class) .add(Restrictions.eq("habilitado", true)).add(Restrictions.or(lhs, rhs)); criteria = criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); res = ((List<Recurso>) criteria.list()).toArray(new Recurso[0]); for (Recurso r : res) try { r.getPatrullas().getId(); } catch (Throwable t) { } } catch (Throwable t) { log.error(t, t); } return res; }
From source file:es.emergya.bbdd.dao.RecursoHome.java
License:Open Source License
@SuppressWarnings("unchecked") @Transactional(readOnly = true, rollbackFor = Throwable.class, propagation = Propagation.REQUIRES_NEW) public Recurso[] getNotAsigned(Flota p) { Recurso[] res = new Recurso[0]; if (p == null || p.getId() == null) { return getByFilter(new Recurso()).toArray(new Recurso[0]); }/*from w w w .j ava2 s . co m*/ try { log.debug("getNotAsigned(" + p.getId() + ")"); Session currentSession = getSession(); currentSession.clear(); Criterion rhs = Restrictions.isNull("flotas"); Criterion lhs = Restrictions.ne("flotas", currentSession.load(Patrulla.class, p.getId())); Criteria criteria = currentSession.createCriteria(Recurso.class).add(Restrictions.or(lhs, rhs)); criteria = criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); res = ((List<Recurso>) criteria.list()).toArray(new Recurso[0]); for (Recurso r : res) try { r.getFlotas().getId(); } catch (Throwable t) { } } catch (Throwable t) { log.error(t, t); } return res; }
From source file:es.jpons.persistence.query.CriteriaAllenRelations.java
License:Open Source License
/** * Implements the during criteria// w w w . j av a2 s . com * * @param initializedCriteria * @param pvp * @return */ public static Criteria during(Criteria initializedCriteria, PossibilisticVTP pvp) { Long jstart = pvp.getStartMP(); Long jright = pvp.getEndMP() + pvp.getEndRight(); Long jleft = pvp.getStartMP() - pvp.getStartLeft(); Long jend = pvp.getEndMP(); initializedCriteria = initializedCriteria.add(Restrictions.or( Restrictions.and(Restrictions.sqlRestriction("({alias}.startMP ) > ?", jstart, LongType.INSTANCE), Restrictions.sqlRestriction("{alias}.endMP <= ?", jright, LongType.INSTANCE)), Restrictions.and(Restrictions.sqlRestriction("({alias}.startMP ) >= ?", jleft, LongType.INSTANCE), Restrictions.sqlRestriction("{alias}.endMP < ?", jend, LongType.INSTANCE)))); return initializedCriteria; }
From source file:es.jpons.persistence.query.CriteriaAllenRelations.java
License:Open Source License
/** * Implements the contains/*from w w w . j a v a 2 s . c om*/ * * @param initializedCriteria * @param pvp * @return */ public static Criteria contains(Criteria initializedCriteria, PossibilisticVTP pvp) { Long jstart = pvp.getStartMP(); Long jright = pvp.getStartMP() + pvp.getStartRight(); Long jleft = pvp.getEndMP() - pvp.getEndLeft(); Long jend = pvp.getEndMP(); initializedCriteria = initializedCriteria.add(Restrictions.or( Restrictions.and(Restrictions.sqlRestriction("({alias}.startMP ) < ?", jstart, LongType.INSTANCE), Restrictions.sqlRestriction("{alias}.endMP >= ?", jleft, LongType.INSTANCE)), Restrictions.and(Restrictions.sqlRestriction("({alias}.startMP ) <= ?", jright, LongType.INSTANCE), Restrictions.sqlRestriction("{alias}.endMP > ?", jend, LongType.INSTANCE)))); return initializedCriteria; }
From source file:es.jpons.persistence.query.CriteriaAllenRelations.java
License:Open Source License
public static Criteria equals(Criteria initializedCriteria, PossibilisticVTP pvp) { initializedCriteria = initializedCriteria.add(Restrictions.and( Restrictions.or( Restrictions.sqlRestriction("({alias}.startMP + {alias}.startRight ) <= ?", pvp.getStartMP() - pvp.getStartLeft(), LongType.INSTANCE), Restrictions.sqlRestriction("({alias}.startMP - {alias}.startLeft ) >= ?", pvp.getStartMP() + pvp.getStartRight(), LongType.INSTANCE)), Restrictions.or(/* w ww . j av a2s . c om*/ Restrictions.sqlRestriction("({alias}.endMP + {alias}.endRight ) <= ?", pvp.getEndMP() - pvp.getEndLeft(), LongType.INSTANCE), Restrictions.sqlRestriction("({alias}.endMP - {alias}.endLeft ) >= ?", pvp.getEndMP() + pvp.getEndRight(), LongType.INSTANCE)))); return initializedCriteria; }