List of usage examples for org.hibernate.criterion Restrictions and
public static LogicalExpression and(Criterion lhs, Criterion rhs)
From source file:dz.alkhwarizmix.framework.java.dao.impl.RecordDAO.java
License:Open Source License
private Record getRecordFromHibernate(final Record recordToGet) throws AlKhwarizmixException { try {/* w w w. j av a 2s. co m*/ Record result = null; final Criteria criteria = getHibernateCurrentSession().createCriteria(Record.class); criteria.add(Restrictions.and(getEqualsRecordIdCriterion(recordToGet), getEqualsParentCriterion(recordToGet))); result = (Record) criteria.uniqueResult(); return result; } catch (final DataAccessException e) { final AlKhwarizmixException ex = new AlKhwarizmixException(AlKhwarizmixErrorCode.ERROR_DATABASE, e); throw ex; } }
From source file:dz.alkhwarizmix.framework.java.dao.impl.RecordDAO.java
License:Open Source License
/** *///from w w w . j av a 2 s. c om @Override public Encryption getEncryption(final Encryption encryptionToGet) throws AlKhwarizmixException { try { Encryption result = null; final Criteria criteria = getHibernateCurrentSession().createCriteria(Encryption.class); criteria.add(Restrictions.and(getEqualsEncryptionIdCriterion(encryptionToGet), getEqualsUserCriterion(encryptionToGet))); result = (Encryption) criteria.uniqueResult(); return result; } catch (final DataAccessException e) { throw new AlKhwarizmixException(AlKhwarizmixErrorCode.ERROR_DATABASE, e); } }
From source file:edu.northwestern.bioinformatics.studycalendar.dao.delta.AmendmentDao.java
License:BSD License
@SuppressWarnings({ "unchecked" }) public Amendment getByNaturalKey(String key, Study study) { final Amendment.Key keyParts = Amendment.decomposeNaturalKey(key); List<Amendment> results = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { //need to have both "lt & ge" or "eq" criterias to work on Oracle and Postgres dbs for date with timestamp. Criteria crit = session.createCriteria(Amendment.class) .add(Restrictions.disjunction() .add(Restrictions.and(Restrictions.lt("date", keyParts.getDateNext()), Restrictions.ge("date", keyParts.getDate()))) .add(Restrictions.eq("date", keyParts.getDate()))); if (keyParts.getName() != null) crit.add(Restrictions.eq("name", keyParts.getName())); crit.addOrder(Order.asc("name")); return crit.list(); }//from w ww . j ava 2 s . c o m }); // filter out amendments for other studies for (Iterator<Amendment> it = results.iterator(); it.hasNext();) { Amendment result = it.next(); if (!study.hasAmendment(result)) it.remove(); } if (results.size() == 0) { return null; } else if (results.size() > 1) { // if there's one with this date and no name, it matches for (Amendment result : results) if (result.getName() == null) return result; List<String> resultKeys = new ArrayList<String>(results.size()); for (Amendment result : results) resultKeys.add(result.getNaturalKey()); throw new StudyCalendarValidationException( "More than one amendment could match %s: %s. Please be more specific.", key, StringUtils.join(resultKeys.iterator(), ", ")); } else { return results.get(0); } }
From source file:edu.ucsb.eucalyptus.cloud.ws.BlockStorage.java
License:Open Source License
/** * Checks to see if a new snapshot of size volSize will exceed the quota * @param volSize/* w w w. ja v a2 s.com*/ * @return */ private boolean totalSnapshotSizeLimitExceeded(String snapshotId, int volSize) throws EucalyptusCloudException { int totalSnapshotSize = 0; EntityTransaction dbTrans = Entities.get(SnapshotInfo.class); Criteria query = Entities.createCriteria(SnapshotInfo.class); query.setReadOnly(true); //TODO: zhill, fix this logic by adding a size value to the snapshot record, should do the calculation on the DB // this will be very poor for performance as the number of snapshots increases. //Only look for snaps that are not failed and not error query.add(Restrictions .not(Restrictions.and(Restrictions.eq("status", StorageProperties.Status.failed.toString()), Restrictions.eq("status", StorageProperties.Status.error.toString())))); try { List<SnapshotInfo> snapInfos = (List<SnapshotInfo>) query.list(); for (SnapshotInfo sInfo : snapInfos) { try { totalSnapshotSize += blockManager.getSnapshotSize(sInfo.getSnapshotId()); } catch (EucalyptusCloudException e) { LOG.error(e); } } int sizeLimitGB = WalrusInfo.getWalrusInfo().getStorageMaxTotalSnapshotSizeInGb(); LOG.debug("Snapshot " + snapshotId + " checking snapshot total size of " + totalSnapshotSize + " against limit of " + sizeLimitGB); return (totalSnapshotSize + volSize) > sizeLimitGB; } catch (final Throwable e) { LOG.error("Error finding total snapshot used size " + e.getMessage()); throw new EucalyptusCloudException("Failed to check snapshot total size limit", e); } finally { if (dbTrans.isActive()) { dbTrans.rollback(); } } }
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();/* w w w .j ava2 s . c o m*/ 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 ww w . j a va2s. c om 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:edu.wisc.my.portlets.bookmarks.dao.hibernate.HibernateBookmarkStore.java
License:Apache License
/** * @see edu.wisc.my.portlets.bookmarks.dao.BookmarkStore#getBookmarkSet(java.lang.String, java.lang.String) *//* w w w . j a v a 2s . c o m*/ public BookmarkSet getBookmarkSet(String owner, String name) { try { final Session session = this.getSession(false); final Criteria c = session.createCriteria(BookmarkSet.class); c.add(Restrictions.and(this.smartEqual(PARAM_NAME, name), this.smartEqual(PARAM_OWNER, owner))); c.setCacheable(true); final BookmarkSet bs = (BookmarkSet) c.uniqueResult(); return bs; } catch (HibernateException ex) { throw convertHibernateAccessException(ex); } }
From source file:edu.wisc.my.portlets.bookmarks.dao.hibernate.HibernatePreferencesStore.java
License:Apache License
/** * @see edu.wisc.my.portlets.bookmarks.dao.PreferencesStore#getPreferences(java.lang.String, java.lang.String) *///from w ww. j a va 2 s .co m public Preferences getPreferences(String owner, String name) { try { final Session session = this.getSession(false); final Criteria c = session.createCriteria(Preferences.class); c.add(Restrictions.and(this.smartEqual(PARAM_NAME, name), this.smartEqual(PARAM_OWNER, owner))); c.setCacheable(true); final Preferences bs = (Preferences) c.uniqueResult(); return bs; } catch (HibernateException ex) { throw convertHibernateAccessException(ex); } }
From source file:ee.ria.xroad.opmonitordaemon.OperationalDataRecordManager.java
License:Open Source License
private static void configureClientAndServiceProviderFilters(Criteria criteria, ClientId client, ClientId serviceProvider) {/*from www . j a v a 2s . com*/ 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:eionet.webq.dao.ProjectFileStorageImpl.java
License:Mozilla Public License
@Override public ProjectFile findByNameAndProject(String name, ProjectEntry projectEntry) { return (ProjectFile) getCriteria() .add(Restrictions.and(eq("projectId", projectEntry.getId()), eq("file.name", name))).uniqueResult(); }