List of usage examples for org.hibernate.criterion Restrictions between
public static Criterion between(String propertyName, Object low, Object high)
From source file:org.encuestame.persistence.dao.imp.TweetPollDao.java
License:Apache License
@SuppressWarnings("unchecked") public List<TweetPoll> retrieveTweetPollByDate(final Account account, final Integer maxResults, final Integer start, final Boolean isCompleted, final Boolean isScheduled, final Boolean isFavourite, final Boolean isPublished, final String keyword, final String period, final Date initDate) { final DetachedCriteria criteria = DetachedCriteria.forClass(TweetPoll.class); criteria.createAlias("tweetOwner", "tweetOwner"); criteria.add(Restrictions.eq("tweetOwner", account)); criteria.add(Restrictions.between("createDate", initDate, getNextDayMidnightDate())); advancedTweetPollSearchOptions(criteria, isCompleted, isScheduled, isFavourite, isPublished, keyword, period);/*from w w w. j a v a 2 s.c o m*/ return (List<TweetPoll>) filterByMaxorStart(criteria, maxResults, start); }
From source file:org.eulerframework.web.core.base.dao.impl.hibernate5.BaseDao.java
License:Apache License
protected Criterion generateRestriction(String property, String value, QueryMode queryMode) { Field field;//from w w w . j a v a2s . c om try { String fieldName = property; if (property.indexOf('.') > 0) { fieldName = property.substring(0, property.indexOf('.')); } field = this.entityClass.getDeclaredField(fieldName); } catch (NoSuchFieldException e) { throw new IllegalArgumentException("Property '" + property + "' not exist"); } if (BaseEmbeddable.class.isAssignableFrom(field.getType())) { try { field = field.getType().getDeclaredField(property.substring(property.indexOf('.') + 1)); } catch (NoSuchFieldException e) { throw new IllegalArgumentException("Property '" + property + "' not exist"); } } switch (queryMode) { case ANYWHERE: return RestrictionsX.like(property, value, MatchMode.ANYWHERE); case START: return RestrictionsX.like(property, value, MatchMode.START); case END: return RestrictionsX.like(property, value, MatchMode.END); case EXACT: return RestrictionsX.like(property, value, MatchMode.EXACT); case GE: return Restrictions.ge(property, JavaObjectUtils.analyzeStringValueToObject(value, field.getType())); case GT: return Restrictions.gt(property, JavaObjectUtils.analyzeStringValueToObject(value, field.getType())); case LE: return Restrictions.le(property, JavaObjectUtils.analyzeStringValueToObject(value, field.getType())); case LT: return Restrictions.lt(property, JavaObjectUtils.analyzeStringValueToObject(value, field.getType())); case IN: return Restrictions.in(property, this.analyzeInterval(value, field.getType())); case NOTIN: return Restrictions.not(RestrictionsX.in(property, this.analyzeInterval(value, field.getType()))); case IS: return Restrictions.eq(property, JavaObjectUtils.analyzeStringValueToObject(value, field.getType())); case NOT: return Restrictions.ne(property, JavaObjectUtils.analyzeStringValueToObject(value, field.getType())); case BETWEEN: Object[] array1 = this.analyzeInterval(value, field.getType()); return Restrictions.between(property, array1[0], array1[1]); case OUTSIDE: Object[] array2 = this.analyzeInterval(value, field.getType()); return Restrictions.not(Restrictions.between(property, array2[0], array2[1])); default: throw new IllegalArgumentException("Unknown query mode: " + queryMode); } }
From source file:org.eurocarbdb.action.core.SearchGlycanSequence.java
License:Open Source License
private DetachedCriteria createSerializableCriteria() { // create base criteria log.debug("creating GlycanSequence criteria"); DetachedCriteria criteria;/*from w ww .j a v a 2s .c o m*/ criteria = DetachedCriteria.forClass(GlycanSequence.class); // create biological contexts criteria DetachedCriteria bc_criteria = null; DetachedCriteria tax_criteria = null; DetachedCriteria tissue_criteria = null; DetachedCriteria disease_criteria = null; DetachedCriteria perturbation_criteria = null; if (taxonomyName != null || tissueName != null || diseaseName != null || perturbationName != null) { isNewQuery = true; log.debug("creating Biological context criteria"); bc_criteria = criteria.createCriteria("glycanContexts").createCriteria("biologicalContext", "bc"); // add taxonomy criteria if (taxonomyName != null) { log.debug("adding taxonomy query predicates for input string '" + taxonomyName + "'"); tax_criteria = bc_criteria.createCriteria("taxonomy", "taxa") .createCriteria("taxonomySupertypes", "supertax") .add(Restrictions.ilike("taxon", taxonomyName, MatchMode.EXACT)); } // add tissue criteria if (tissueName != null) { log.debug("adding tissue query predicates for input string '" + tissueName + "'"); tissue_criteria = bc_criteria.createCriteria("tissueTaxonomy", "ttax") .add(Restrictions.ilike("tissueTaxon", tissueName, MatchMode.EXACT)); } // add disease criteria if (diseaseName != null) { log.debug("adding disease query criteria for input string '" + diseaseName + "'"); disease_criteria = bc_criteria.createCriteria("diseaseContexts").createCriteria("disease", "dis") .add(Restrictions.ilike("diseaseName", diseaseName, MatchMode.EXACT)); } if (perturbationName != null) { log.debug("adding perturbation query criteria for input string '" + perturbationName + "'"); perturbation_criteria = bc_criteria.createCriteria("perturbationContexts") .createCriteria("perturbation", "per") .add(Restrictions.ilike("perturbationName", perturbationName, MatchMode.EXACT)); } } // add mass criteria boolean mass_query_is_given = false; boolean params_are_ok = false; if (exactMass > 0 && exactMassTolerance > 0) { isNewQuery = true; mass_query_is_given = true; lowMass = exactMass - exactMassTolerance; highMass = exactMass + exactMassTolerance; log.debug("adding predicates for exactMass=" + exactMass + " Da +/- " + exactMassTolerance + " Da (ie: " + lowMass + "-" + highMass + " Da)"); params_are_ok = true; } else if (lowMass > 0 && highMass > 0) { isNewQuery = true; mass_query_is_given = true; exactMass = -1; exactMassTolerance = -1; log.debug("adding predicates for mass range=(" + lowMass + ".." + highMass + " Da)"); params_are_ok = true; } if (mass_query_is_given) { if (params_are_ok) { isNewQuery = true; String property = useAvgMass ? "massAverage" : "massMonoisotopic"; criteria.add(Restrictions.between(property, new BigDecimal(lowMass), new BigDecimal(highMass))); } else { String msg = "Insufficient mass parameters given, either " + "provide an exactMass + exactMassTolerence + useAvgMass preference, " + "or provide a lowMass + highMass + useAvgMass preference"; addActionError(msg); log.info(msg); } } Glycan glycan = null; if (sequenceGWS != null) { glycan = Glycan.fromString(sequenceGWS); glycan.removeReducingEndModification(); if (glycan.isEmpty()) { glycan = null; sequenceGWS = null; } } if (glycan != null) { isNewQuery = true; // search structure in DB String glycoct = glycan.toGlycoCTCondensed(); SugarSequence seq = new SugarSequence(glycoct); SubstructureQuery query = new SubstructureQuery(seq); if (sequencePosition != null) { if (sequencePosition.equals("Core") || sequencePosition.equals("Core + Terminii")) query.setOption(Must_Include_Reducing_Terminus); if (sequencePosition.equals("Terminii") || sequencePosition.equals("Core + Terminii")) query.setOption(Must_Include_All_Non_Reducing_Terminii); } criteria.add(query.getQueryCriterion()); } if (this.additionalQueries.size() > 1) { isNewQuery = true; } for (SavedGlycanSequenceSearch oldQuery : this.additionalQueries) { DetachedCriteria oldCriteria = oldQuery.getQueryCriteria(); criteria.add(Subqueries.propertyIn("glycanSequenceId", oldCriteria)); oldCriteria.setProjection(Projections.distinct(Projections.property("glycanSequenceId"))); this.currentSearch = oldQuery; } return criteria; }
From source file:org.faster.orm.criteria.GenericCriteria.java
License:Open Source License
public DetachedCriteria buildCriteria() { beforeBuildCriteria();/*from w ww .j a v a 2 s .c om*/ DetachedCriteria dc = DetachedCriteria.forClass(persistClass); List<Field> queryFields = QueryHelper.getQueryFields(this.getClass()); Set<String> aliases = new HashSet<String>(); // ?? for (Field f : queryFields) { try { Object obj = f.get(this); boolean ignoreNull = QueryHelper.isIgnoreNull(f); if (obj == null) { if (ignoreNull) { continue; } } String fieldName = QueryHelper.getFieldName(f); if (fieldName.contains(".")) { String[] subFieldNames = fieldName.split("\\."); String fieldPath = subFieldNames[0]; String alias = subFieldNames[0]; if (!aliases.contains(alias)) { dc.createAlias(fieldPath, alias); aliases.add(alias); } // ?alias for (int i = 1; i < subFieldNames.length - 1; i++) { fieldPath += "." + subFieldNames[i]; alias += "_" + subFieldNames[i]; if (!aliases.contains(alias)) { dc.createAlias(fieldPath, alias); aliases.add(alias); } } if (subFieldNames.length > 2) { fieldName = alias + "." + subFieldNames[subFieldNames.length - 1]; } } if (obj == null && !ignoreNull) { dc.add(Restrictions.isNull(fieldName)); continue; } String stringValue = String.valueOf(obj); boolean ignoreEmptyOrZero = QueryHelper.isIgnoreEmptyOrZero(f); if (ignoreEmptyOrZero && isBlank(stringValue)) { continue; } if (stringValue.startsWith(NULL)) { dc.add(Restrictions.isNull(fieldName)); continue; } if (stringValue.startsWith(NOT_NULL)) { dc.add(Restrictions.isNotNull(fieldName)); continue; } String delimiter = QueryHelper.getDelimiter(f); DataType dt = QueryHelper.getDataType(f); MatchMode mm = QueryHelper.getMatchMode(f); switch (dt) { case STRING: switch (mm) { case EQ: dc.add(Restrictions.eq(fieldName, stringValue)); continue; case LIKE: dc.add(Restrictions.like(fieldName, stringValue, org.hibernate.criterion.MatchMode.ANYWHERE)); continue; case LIKE_START: dc.add(Restrictions.like(fieldName, stringValue, org.hibernate.criterion.MatchMode.START)); continue; case LIKE_END: dc.add(Restrictions.like(fieldName, stringValue, org.hibernate.criterion.MatchMode.END)); continue; case ILIKE: dc.add(Restrictions.ilike(fieldName, stringValue, org.hibernate.criterion.MatchMode.ANYWHERE)); continue; case ILIKE_START: dc.add(Restrictions.ilike(fieldName, stringValue, org.hibernate.criterion.MatchMode.START)); continue; case ILIKE_END: dc.add(Restrictions.ilike(fieldName, stringValue, org.hibernate.criterion.MatchMode.END)); continue; case IN: CriteriaRender.renderFieldByStringFilterValues(dc, fieldName, stringValue, delimiter); continue; default: throw new IllegalArgumentException("Invalid MatchMode for String: " + mm); } case INTEGER: if (ignoreEmptyOrZero && stringValue.equals("0")) { continue; } Integer intValue = 0; if (mm != MatchMode.IN) { try { intValue = Integer.valueOf(stringValue); } catch (Exception e) { throw new IllegalArgumentException( stringValue + " is not valid int value and can't use MatchMode: " + mm); } } switch (mm) { case EQ: dc.add(Restrictions.eq(fieldName, intValue)); continue; case NE: dc.add(Restrictions.ne(fieldName, intValue)); continue; case IN: CriteriaRender.renderFieldByIntegerFilterValues(dc, fieldName, stringValue, delimiter); continue; case GT: dc.add(Restrictions.gt(fieldName, intValue)); continue; case GE: dc.add(Restrictions.ge(fieldName, intValue)); continue; case LT: dc.add(Restrictions.lt(fieldName, intValue)); continue; case LE: dc.add(Restrictions.le(fieldName, intValue)); continue; default: throw new IllegalArgumentException("Invalid MatchMode for Long: " + mm); } case LONG: if (ignoreEmptyOrZero && stringValue.equals("0")) { continue; } Long longValue = 0L; if (mm != MatchMode.IN) { try { longValue = Long.valueOf(stringValue); } catch (Exception e) { throw new IllegalArgumentException( stringValue + " is not valid long value and can't use MatchMode: " + mm); } } switch (mm) { case EQ: dc.add(Restrictions.eq(fieldName, longValue)); continue; case NE: dc.add(Restrictions.ne(fieldName, longValue)); continue; case IN: CriteriaRender.renderFieldByLongFilterValues(dc, fieldName, stringValue, delimiter); continue; case GT: dc.add(Restrictions.gt(fieldName, longValue)); continue; case GE: dc.add(Restrictions.ge(fieldName, longValue)); continue; case LT: dc.add(Restrictions.lt(fieldName, longValue)); continue; case LE: dc.add(Restrictions.le(fieldName, longValue)); continue; default: throw new IllegalArgumentException("Invalid MatchMode for Long: " + mm); } case DATE: // TODO ?????? Date date = DateTimes.parseStringToDate(stringValue); switch (mm) { case EQ: dc.add(Restrictions.eq(fieldName, date)); continue; case NE: dc.add(Restrictions.ne(fieldName, date)); continue; case GT: dc.add(Restrictions.gt(fieldName, date)); continue; case GE: dc.add(Restrictions.ge(fieldName, date)); continue; case LT: dc.add(Restrictions.lt(fieldName, date)); continue; case LE: dc.add(Restrictions.le(fieldName, date)); continue; default: throw new IllegalArgumentException("Invalid MatchMode for Date: " + mm); } case BOOLEAN: Boolean bool = BooleanUtils.toBooleanObject(stringValue); switch (mm) { case EQ: dc.add(Restrictions.eq(fieldName, bool)); continue; case NE: dc.add(Restrictions.ne(fieldName, bool)); continue; default: throw new IllegalArgumentException("Invalid MatchMode for Boolean: " + mm); } case LatLong: LatLngBound b = new LatLngBound(stringValue); if (b.isValid()) { String minLatitude = b.getMinLatitude() == null ? "0.0" : b.getMinLatitude().toString(); String maxLatitude = b.getMaxLatitude() == null ? "0.0" : b.getMaxLatitude().toString(); String minLongitude = b.getMinLongitude() == null ? "0.0" : b.getMinLongitude().toString(); String maxLongitude = b.getMaxLongitude() == null ? "0.0" : b.getMaxLongitude().toString(); if ("area".equalsIgnoreCase(fieldName)) { dc.add(Restrictions.between("latitude", minLatitude, maxLatitude)); dc.add(Restrictions.between("longitude", minLongitude, maxLongitude)); } else { if (fieldName.contains(".")) { String alias = fieldName.replace(".", "_"); if (!aliases.contains(alias)) { dc.createAlias(fieldName, alias); aliases.add(alias); } fieldName = alias; } else { if (!aliases.contains(fieldName)) { dc.createAlias(fieldName, fieldName); aliases.add(fieldName); } } dc.add(Restrictions.between(fieldName + ".latitude", minLatitude, maxLatitude)); dc.add(Restrictions.between(fieldName + ".longitude", minLongitude, maxLongitude)); } } continue; default: throw new IllegalArgumentException("Unsupported DataType: " + dt); } } catch (Exception e) { throw new IllegalArgumentException(e); } } renderCriteria(dc); if (isNotBlank(sort)) { String[] fields = sort.split("-"); if (fields.length < 2 || "desc".equalsIgnoreCase(fields[1])) { dc.addOrder(Order.desc(fields[0])); } else { dc.addOrder(Order.asc(fields[0])); } } return dc; }
From source file:org.fireflow.engine.modules.persistence.hibernate.PersisterUtils.java
License:Open Source License
public static org.hibernate.criterion.Criterion fireCriterion2HibernateCriterion( org.fireflow.client.query.Criterion fireCriterion) { String operation = fireCriterion.getOperation().trim(); if (Criterion.OPERATION_EQ.equals(operation)) { return Restrictions.eq(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()[0]); } else if (Criterion.OPERATION_NE.equals(operation)) { return Restrictions.ne(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()[0]); } else if (Criterion.OPERATION_LIKE.equals(operation)) { return Restrictions.like(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()[0]); } else if (Criterion.OPERATION_GT.equals(operation)) { return Restrictions.gt(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()[0]); } else if (Criterion.OPERATION_LT.equals(operation)) { return Restrictions.lt(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()[0]); } else if (Criterion.OPERATION_GE.equals(operation)) { return Restrictions.ge(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()[0]); } else if (Criterion.OPERATION_LE.equals(operation)) { return Restrictions.le(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()[0]); } else if (operation.equals(Criterion.OPERATION_IS_NULL)) { return Restrictions.isNull(fireCriterion.getEntityProperty().getPropertyName()); } else if (operation.equals(Criterion.OPERATION_IS_NOT_NULL)) { return Restrictions.isNotNull(fireCriterion.getEntityProperty().getPropertyName()); } else if (operation.equals(Criterion.OPERATION_IN)) { return Restrictions.in(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()); } else if (Criterion.OPERATION_BETWEEN.equals(operation)) { return Restrictions.between(fireCriterion.getEntityProperty().getPropertyName(), fireCriterion.getValues()[0], fireCriterion.getValues()[1]); } else if (Criterion.OPERATION_AND.equals(operation)) { org.fireflow.client.query.Criterion left = (org.fireflow.client.query.Criterion) fireCriterion .getValues()[0];/*from w ww. ja v a2 s.co m*/ org.fireflow.client.query.Criterion right = (org.fireflow.client.query.Criterion) fireCriterion .getValues()[1]; org.hibernate.criterion.Criterion hLeft = fireCriterion2HibernateCriterion(left); org.hibernate.criterion.Criterion hRight = fireCriterion2HibernateCriterion(right); return Restrictions.and(hLeft, hRight); } else if (Criterion.OPERATION_OR.equals(operation)) { org.fireflow.client.query.Criterion left = (org.fireflow.client.query.Criterion) fireCriterion .getValues()[0]; org.fireflow.client.query.Criterion right = (org.fireflow.client.query.Criterion) fireCriterion .getValues()[1]; org.hibernate.criterion.Criterion hLeft = fireCriterion2HibernateCriterion(left); org.hibernate.criterion.Criterion hRight = fireCriterion2HibernateCriterion(right); return Restrictions.or(hLeft, hRight); } return null; }
From source file:org.fornax.cartridges.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionAccessImpl.java
License:Apache License
private Criterion makeCriterion(ConditionalCriteria crit) { if (crit == null) { return null; }/*from w w w . j ava 2 s . c o m*/ ConditionalCriteria.Operator operator = crit.getOperator(); if (Operator.Equal.equals(operator)) { return Restrictions.eq(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant()); } else if (Operator.IgnoreCaseEqual.equals(operator)) { return Restrictions.eq(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant()) .ignoreCase(); } else if (Operator.LessThan.equals(operator)) { return Restrictions.lt(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant()); } else if (Operator.LessThanOrEqual.equals(operator)) { return Restrictions.le(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant()); } else if (Operator.GreatThan.equals(operator)) { return Restrictions.gt(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant()); } else if (Operator.GreatThanOrEqual.equals(operator)) { return Restrictions.ge(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant()); } else if (Operator.Like.equals(operator)) { return Restrictions.like(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant()); } else if (Operator.IgnoreCaseLike.equals(operator)) { return Restrictions.ilike(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant()); } else if (Operator.IsNull.equals(operator)) { return Restrictions.isNull(makePathWithAlias(crit.getPropertyFullName())); } else if (Operator.IsNotNull.equals(operator)) { return Restrictions.isNotNull(makePathWithAlias(crit.getPropertyFullName())); } else if (Operator.IsEmpty.equals(operator)) { return Restrictions.isEmpty(makePathWithAlias(crit.getPropertyFullName())); } else if (Operator.IsNotEmpty.equals(operator)) { return Restrictions.isNotEmpty(makePathWithAlias(crit.getPropertyFullName())); } else if (Operator.Not.equals(operator)) { return Restrictions.not(makeCriterion((ConditionalCriteria) crit.getFirstOperant())); } else if (Operator.Or.equals(operator) && crit.getFirstOperant() instanceof List<?>) { Disjunction disj = Restrictions.disjunction(); List<?> disjList = (List<?>) crit.getFirstOperant(); for (Object disjPart : disjList) { disj.add(makeCriterion((ConditionalCriteria) disjPart)); } return disj; } else if (Operator.Or.equals(operator)) { return Restrictions.or(makeCriterion((ConditionalCriteria) crit.getFirstOperant()), makeCriterion((ConditionalCriteria) crit.getSecondOperant())); } else if (Operator.And.equals(operator) && crit.getFirstOperant() instanceof List<?>) { Conjunction conj = Restrictions.conjunction(); List<?> conjList = (List<?>) crit.getFirstOperant(); for (Object conjPart : conjList) { conj.add(makeCriterion((ConditionalCriteria) conjPart)); } return conj; } else if (Operator.And.equals(operator)) { return Restrictions.and(makeCriterion((ConditionalCriteria) crit.getFirstOperant()), makeCriterion((ConditionalCriteria) crit.getSecondOperant())); } else if (Operator.In.equals(operator)) { if (crit.getFirstOperant() instanceof Collection<?>) { return Restrictions.in(makePathWithAlias(crit.getPropertyFullName()), (Collection<?>) crit.getFirstOperant()); } else { return Restrictions.in(makePathWithAlias(crit.getPropertyFullName()), (Object[]) crit.getFirstOperant()); } } else if (Operator.Between.equals(operator)) { return Restrictions.between(makePathWithAlias(crit.getPropertyFullName()), crit.getFirstOperant(), crit.getSecondOperant()); } else if (Operator.DistinctRoot.equals(operator)) { realDistinctRoot = true; return null; } else if (Operator.ProjectionRoot.equals(operator)) { resultTransformer = Criteria.PROJECTION; return null; } else if (Operator.EqualProperty.equals(operator)) { return Restrictions.eqProperty(makePathWithAlias(crit.getPropertyFullName()), (String) crit.getFirstOperant()); } else if (Operator.LessThanProperty.equals(operator)) { return Restrictions.eqProperty(makePathWithAlias(crit.getPropertyFullName()), (String) crit.getFirstOperant()); } else if (Operator.LessThanOrEqualProperty.equals(operator)) { return Restrictions.eqProperty(makePathWithAlias(crit.getPropertyFullName()), (String) crit.getFirstOperant()); } else if (Operator.GreatThanProperty.equals(operator)) { return Restrictions.eqProperty(makePathWithAlias(crit.getPropertyFullName()), (String) crit.getFirstOperant()); } else if (Operator.GreatThanOrEqualProperty.equals(operator)) { return Restrictions.eqProperty(makePathWithAlias(crit.getPropertyFullName()), (String) crit.getFirstOperant()); } else { return null; } }
From source file:org.geomajas.layer.hibernate.CriteriaVisitor.java
License:Open Source License
/** {@inheritDoc} */ @Override//from www .ja v a 2 s . com public Object visit(PropertyIsBetween filter, Object userData) { String propertyName = getPropertyName(filter.getExpression()); String finalName = parsePropertyName(propertyName, userData); Object lo = castLiteral(getLiteralValue(filter.getLowerBoundary()), propertyName); Object hi = castLiteral(getLiteralValue(filter.getUpperBoundary()), propertyName); return Restrictions.between(finalName, lo, hi); }
From source file:org.geomajas.layer.hibernate.CriteriaVisitor.java
License:Open Source License
/** {@inheritDoc} */ @Override//from ww w .ja v a 2 s. c o m public Object visit(During during, Object userData) { String propertyName = getPropertyName(during.getExpression1()); String finalName = parsePropertyName(propertyName, userData); Object literal = getLiteralValue(during.getExpression2()); if (literal instanceof Period) { Period p = (Period) literal; Date begin = p.getBeginning().getPosition().getDate(); Date end = p.getEnding().getPosition().getDate(); return Restrictions.between(finalName, begin, end); } else { throw new UnsupportedOperationException("visit(Object userData)"); } }
From source file:org.glite.security.voms.admin.persistence.dao.VOMSUserDAO.java
License:Apache License
public Long countExpiringUsers(Integer intervalInDays) { Criteria crit = HibernateFactory.getSession().createCriteria(VOMSUser.class); Calendar cal = Calendar.getInstance(); Date now = cal.getTime();//from w ww . j a v a 2s.c o m cal.add(Calendar.DAY_OF_YEAR, intervalInDays); Date intervalDate = cal.getTime(); crit.add(Restrictions.between("endTime", now, intervalDate)); crit.add(Restrictions.eq("suspended", false)); crit.setProjection(Projections.rowCount()); return (Long) crit.list().get(0); }
From source file:org.glite.security.voms.admin.persistence.dao.VOMSUserDAO.java
License:Apache License
@SuppressWarnings("unchecked") public List<VOMSUser> findExpiringUsers(Integer intervalInDays) { Criteria crit = HibernateFactory.getSession().createCriteria(VOMSUser.class); Calendar cal = Calendar.getInstance(); Date now = cal.getTime();// w w w . j a v a2 s. com cal.add(Calendar.DAY_OF_YEAR, intervalInDays); Date intervalDate = cal.getTime(); crit.add(Restrictions.between("endTime", now, intervalDate)); crit.add(Restrictions.eq("suspended", false)); crit.addOrder(Order.asc("endTime")); return crit.list(); }