List of usage examples for org.hibernate.criterion Restrictions isNotNull
public static Criterion isNotNull(String propertyName)
From source file:com.floreantpos.model.dao.TicketDAO.java
License:Open Source License
public int getNumTickets(Date start, Date end) { Session session = null;//from w w w .j av a 2 s . c o m Criteria criteria = null; try { session = createNewSession(); criteria = session.createCriteria(getReferenceClass()); criteria.add(Restrictions.eq(Ticket.PROP_CLOSED, Boolean.FALSE)); if (start != null) criteria.add(Restrictions.ge(Ticket.PROP_DELIVERY_DATE, start)); if (end != null) criteria.add(Restrictions.le(Ticket.PROP_DELIVERY_DATE, end)); criteria.add(Restrictions.isNotNull(Ticket.PROP_DELIVERY_DATE)); criteria.setProjection(Projections.rowCount()); Number rowCount = (Number) criteria.uniqueResult(); if (rowCount != null) { return rowCount.intValue(); } return 0; } finally { closeSession(session); } }
From source file:com.floreantpos.model.dao.TicketDAO.java
License:Open Source License
public void loadTickets(PaginatedTableModel tableModel, Date start, Date end) { Session session = null;/*w w w .ja v a2 s.c om*/ Criteria criteria = null; try { session = createNewSession(); criteria = session.createCriteria(getReferenceClass()); criteria.add(Restrictions.eq(Ticket.PROP_CLOSED, Boolean.FALSE)); if (start != null) criteria.add(Restrictions.ge(Ticket.PROP_DELIVERY_DATE, start)); if (end != null) criteria.add(Restrictions.le(Ticket.PROP_DELIVERY_DATE, end)); criteria.add(Restrictions.isNotNull(Ticket.PROP_DELIVERY_DATE)); criteria.setFirstResult(tableModel.getCurrentRowIndex()); criteria.setMaxResults(tableModel.getPageSize()); tableModel.setRows(criteria.list()); return; } finally { closeSession(session); } }
From source file:com.gisgraphy.domain.repository.OpenStreetMapDao.java
License:Open Source License
@SuppressWarnings("unchecked") public List<StreetDistance> getNearestAndDistanceFrom(final Point point, final double distance, final int firstResult, final int maxResults, final StreetType streetType, final Boolean oneWay, final String name, final StreetSearchMode streetSearchMode, final boolean includeDistanceField) { if (streetSearchMode == StreetSearchMode.FULLTEXT && !GisgraphyConfig.STREET_SEARCH_FULLTEXT_MODE) { throw new GisgraphyException( "The fulltext mode has been removed in gisgraphy v 3.0 and has been replaced by fulltext webservice with placetype=street. please Consult user guide."); }/* w ww. ja v a2s.c om*/ if (name != null && streetSearchMode == null) { throw new IllegalArgumentException("streetSearchmode can not be null if name is provided"); } if (point == null && streetSearchMode == StreetSearchMode.CONTAINS) { throw new IllegalArgumentException( "you must specify lat/lng when streetsearchmode = " + StreetSearchMode.CONTAINS); } return (List<StreetDistance>) this.getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria criteria = session.createCriteria(OpenStreetMap.class); List<String> fieldList = IntrospectionHelper.getFieldsAsList(OpenStreetMap.class); ProjectionList projections = ProjectionBean.fieldList(fieldList, false); if (includeDistanceField && point != null) { projections.add( // SpatialProjection.distance_sphere(point, GisFeature.LOCATION_COLUMN_NAME).as( // "distance")); SpatialProjection.distance_pointToLine(point, OpenStreetMap.SHAPE_COLUMN_NAME) .as("distance")); } criteria.setProjection(projections); if (includeDistanceField && point != null) { criteria.addOrder(new ProjectionOrder("distance")); } if (maxResults > 0) { criteria = criteria.setMaxResults(maxResults); } if (firstResult >= 1) { criteria = criteria.setFirstResult(firstResult - 1); } if (point != null) { Polygon polygonBox = GeolocHelper.createPolygonBox(point.getX(), point.getY(), distance); criteria = criteria.add(new IntersectsRestriction(OpenStreetMap.SHAPE_COLUMN_NAME, polygonBox)); } if (name != null) { if (streetSearchMode == StreetSearchMode.CONTAINS) { criteria = criteria.add(Restrictions.isNotNull("name"));//optimisation! criteria = criteria.add( Restrictions.ilike(OpenStreetMap.FULLTEXTSEARCH_PROPERTY_NAME, "%" + name + "%")); //criteria = criteria.add(new PartialWordSearchRestriction(OpenStreetMap.PARTIALSEARCH_VECTOR_COLUMN_NAME, name)); } else if (streetSearchMode == StreetSearchMode.FULLTEXT) { criteria = criteria.add( new FulltextRestriction(OpenStreetMap.FULLTEXTSEARCH_VECTOR_PROPERTY_NAME, name)); } else { throw new NotImplementedException( streetSearchMode + " is not implemented for street search"); } } if (streetType != null) { criteria = criteria.add(Restrictions.eq("streetType", streetType)); } if (oneWay != null) { criteria = criteria.add(Restrictions.eq("oneWay", oneWay)); } criteria.setCacheable(true); // List<Object[]> queryResults =testCriteria.list(); List<?> queryResults = criteria.list(); if (queryResults != null && queryResults.size() != 0) { String[] propertiesNameArray; if (includeDistanceField && point != null) { propertiesNameArray = (String[]) ArrayUtils .add(IntrospectionHelper.getFieldsAsArray(OpenStreetMap.class), "distance"); } else { propertiesNameArray = IntrospectionHelper.getFieldsAsArray(OpenStreetMap.class); } List<StreetDistance> results = ResultTransformerUtil .transformToStreetDistance(propertiesNameArray, queryResults); return results; } else { return new ArrayList<StreetDistance>(); } } }); }
From source file:com.gisgraphy.domain.repository.OpenStreetMapDao.java
License:Open Source License
@SuppressWarnings({ "unchecked", "rawtypes" }) public OpenStreetMap getNearestFrom(final Point point, final boolean onlyroad, final boolean filterEmptyName) { if (point == null) { return null; }//w w w .j a v a 2s . c o m return (OpenStreetMap) this.getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws PersistenceException { Criteria criteria = session.createCriteria(OpenStreetMap.class); if (point != null) { //An intersect restriction will probably have better performances and use the index than a distance restriction Polygon polygonBox = GeolocHelper.createPolygonBox(point.getX(), point.getY(), DEFAULT_DISTANCE); criteria = criteria.add(new IntersectsRestriction(OpenStreetMap.SHAPE_COLUMN_NAME, polygonBox)); } if (onlyroad) { criteria = criteria.add(Restrictions.ne("streetType", StreetType.FOOTWAY)); } if (filterEmptyName) { criteria = criteria.add(Restrictions.isNotNull("name")); } String pointAsString = "ST_GeometryFromText('POINT(" + point.getX() + " " + point.getY() + ")'," + SRID.WGS84_SRID.getSRID() + ")"; String distanceCondition = new StringBuffer().append(DISTANCE_SPHERE_FUNCTION).append("(") .append(pointAsString).append(",").append(SpatialProjection.ST_CLOSEST_POINT).append("(") .append("this_.").append(OpenStreetMap.SHAPE_COLUMN_NAME).append(",").append(pointAsString) .append(")").append(")").toString(); criteria.addOrder(new NativeSQLOrder(distanceCondition)); criteria = criteria.setMaxResults(1); criteria.setCacheable(true); // List<Object[]> queryResults =testCriteria.list(); OpenStreetMap openStreetMap = (OpenStreetMap) criteria.uniqueResult(); return openStreetMap; } }); }
From source file:com.google.api.ads.adwords.jaxws.extensions.report.model.persistence.sql.SqlReportEntitiesPersister.java
License:Open Source License
/** * @param startDate the start date/*from ww w . j a va 2 s. c om*/ * @param endDate the end date * @param criteria the criteria * @return the list of reports grouped by month */ @SuppressWarnings("unchecked") private List<? extends Report> listMonthReportsForCriteria(long accountId, DateTime startDate, DateTime endDate, Criteria criteria) { criteria.add(Restrictions.isNull("day")); criteria.add(Restrictions.isNotNull("month")); criteria.add(Restrictions.eq("accountId", accountId)); criteria.addOrder(Order.asc("month")); if (startDate != null) { criteria.add(Restrictions.ge("month", startDate.toDate())); } if (endDate != null) { criteria.add(Restrictions.le("month", endDate.toDate())); } return criteria.list(); }
From source file:com.green.modules.cms.service.ArticleService.java
License:Open Source License
@Transactional(readOnly = false) public Page<Article> find(Page<Article> page, Article article, boolean isDataScopeFilter) { // ??6??//from w ww . jav a2s . c o m Date updateExpiredWeightDate = (Date) CacheUtils.get("updateExpiredWeightDateByArticle"); if (updateExpiredWeightDate == null || (updateExpiredWeightDate != null && updateExpiredWeightDate.getTime() < new Date().getTime())) { articleDao.updateExpiredWeight(); CacheUtils.put("updateExpiredWeightDateByArticle", DateUtils.addHours(new Date(), 6)); } DetachedCriteria dc = articleDao.createDetachedCriteria(); dc.createAlias("category", "category"); dc.createAlias("category.site", "category.site"); if (article.getCategory() != null && StringUtils.isNotBlank(article.getCategory().getId()) && !Category.isRoot(article.getCategory().getId())) { Category category = categoryDao.get(article.getCategory().getId()); if (category != null) { dc.add(Restrictions.or(Restrictions.eq("category.id", category.getId()), Restrictions.like("category.parentIds", "%," + category.getId() + ",%"))); dc.add(Restrictions.eq("category.site.id", category.getSite().getId())); article.setCategory(category); } else { dc.add(Restrictions.eq("category.site.id", Site.getCurrentSiteId())); } } else { dc.add(Restrictions.eq("category.site.id", Site.getCurrentSiteId())); } if (StringUtils.isNotEmpty(article.getTitle())) { dc.add(Restrictions.like("title", "%" + article.getTitle() + "%")); } if (StringUtils.isNotEmpty(article.getPosid())) { dc.add(Restrictions.like("posid", "%," + article.getPosid() + ",%")); } if (StringUtils.isNotEmpty(article.getImage()) && Article.YES.equals(article.getImage())) { dc.add(Restrictions.and(Restrictions.isNotNull("image"), Restrictions.ne("image", ""))); } if (article.getCreateBy() != null && StringUtils.isNotBlank(article.getCreateBy().getId())) { dc.add(Restrictions.eq("createBy.id", article.getCreateBy().getId())); } if (isDataScopeFilter) { dc.createAlias("category.office", "categoryOffice").createAlias("createBy", "createBy"); dc.add(dataScopeFilter(UserUtils.getUser(), "categoryOffice", "createBy")); } dc.add(Restrictions.eq(Article.FIELD_DEL_FLAG, article.getDelFlag())); if (StringUtils.isBlank(page.getOrderBy())) { dc.addOrder(Order.desc("weight")); dc.addOrder(Order.desc("updateDate")); } return articleDao.find(page, dc); }
From source file:com.heliosapm.aa4h.parser.XMLQueryParser.java
License:Apache License
/** * Element Start SAX ContentHandler Method. * @param uri/*from w w w . j av a 2s .c o m*/ * @param localName * @param qName * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes) * @throws SAXException * TODO: Document supported tags in javadoc. */ @SuppressWarnings({ "unchecked" }) public void startElement(String uri, String localNameX, String qName, Attributes attrs) throws SAXException { if ("Query".equalsIgnoreCase(qName)) { queryName = attrs.getValue("name"); rootElementName = queryName; } else if ("Class".equalsIgnoreCase(qName)) { processCriteria(attrs); } else if ("Union".equalsIgnoreCase(qName)) { inDetached = true; DetachedCriteria dc = DetachedCriteria.forEntityName(className); criteriaStack.push(dc); } else if ("NamedQuery".equalsIgnoreCase(qName)) { isNamedQuery = true; namedQuery = attrs.getValue("name"); rootElementName = namedQuery; try { query = session.getNamedQuery(namedQuery); } catch (HibernateException he) { throw new SAXException("Failed to retrieve named query[" + namedQuery + "]", he); } } else if ("qparam".equalsIgnoreCase(qName)) { processQueryBind(attrs); } else if ("Join".equalsIgnoreCase(qName)) { processCriteria(attrs); } else if ("Projections".equalsIgnoreCase(qName)) { startProjection(attrs); } else if ("Projection".equalsIgnoreCase(qName)) { addProjection(attrs); } else if ("Order".equalsIgnoreCase(qName)) { if (isRowCountOnly() == false) { try { String name = attrs.getValue("name"); String type = attrs.getValue("type"); ((Criteria) criteriaStack.peek()) .addOrder(type.equalsIgnoreCase("asc") ? Order.asc(name) : Order.desc(name)); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThan:" + attrs.getValue("name"), e); } } } else if ("GreaterThan".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.gt(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThan:" + attrs.getValue("name"), e); } } else if ("GreaterThanOrEqual".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.ge(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThanOrEqual:" + attrs.getValue("name"), e); } } else if ("LessThan".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.lt(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse LessThan:" + attrs.getValue("name"), e); } } else if ("LessThanOrEqual".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.le(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse LessThanOrEqual:" + attrs.getValue("name"), e); } } else if ("Equals".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); if ("true".equalsIgnoreCase(attrs.getValue("not"))) { addCriterion(Restrictions.not(Restrictions.eq(operator.getName(), operator.getNativeValue()))); } else { addCriterion(Restrictions.eq(operator.getName(), operator.getNativeValue())); } } catch (Exception e) { throw new SAXException("Unable To Parse Equals:" + attrs.getValue("name"), e); } } else if ("Alias".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); ((Criteria) criteriaStack.peek()).createAlias(operator.getName(), operator.getValue()); } catch (Exception e) { throw new SAXException("Unable To Create Alias:" + attrs.getValue("name"), e); } } else if ("GreaterThanProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.gtProperty(operator.getName(), operator.getName2())); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThanProperty:" + attrs.getValue("name"), e); } } else if ("GreaterThanOrEqualProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.geProperty(operator.getName(), operator.getName2())); } catch (Exception e) { throw new SAXException("Unable To Parse GreaterThanOrEqualProperty:" + attrs.getValue("name"), e); } } else if ("LessThanProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.ltProperty(operator.getName(), operator.getName2())); } catch (Exception e) { throw new SAXException("Unable To Parse LessThanProperty:" + attrs.getValue("name"), e); } } else if ("LessThanOrEqualProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.leProperty(operator.getName(), operator.getName2())); } catch (Exception e) { throw new SAXException("Unable To Parse LessThanOrEqualProperty:" + attrs.getValue("name"), e); } } else if ("EqualsProperty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); if ("true".equalsIgnoreCase(attrs.getValue("not"))) { addCriterion( Restrictions.not(Restrictions.eqProperty(operator.getName(), operator.getName2()))); } else { addCriterion(Restrictions.eqProperty(operator.getName(), operator.getName2())); } } catch (Exception e) { throw new SAXException("Unable To Parse EqualsProperty:" + attrs.getValue("name"), e); } } else if ("Like".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.like(operator.getName(), operator.getNativeValue())); } catch (Exception e) { throw new SAXException("Unable To Parse Like:" + attrs.getValue("name"), e); } } else if ("Between".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.between(operator.getName(), operator.getNativeValue(), operator.getNativeValue2())); } catch (Exception e) { throw new SAXException("Unable To Parse Between:" + attrs.getValue("name"), e); } } else if ("IsEmpty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.isEmpty(operator.getName())); } catch (Exception e) { throw new SAXException("Unable To Parse IsEmpty:" + attrs.getValue("name"), e); } } else if ("IsNotEmpty".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.isNotEmpty(operator.getName())); } catch (Exception e) { throw new SAXException("Unable To Parse IsNotEmpty:" + attrs.getValue("name"), e); } } else if ("IsNull".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.isNull(operator.getName())); } catch (Exception e) { throw new SAXException("Unable To Parse IsNull:" + attrs.getValue("name"), e); } } else if ("IsNotNull".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); addCriterion(Restrictions.isNotNull(operator.getName())); } catch (Exception e) { throw new SAXException("Unable To Parse IsNotNull:" + attrs.getValue("name"), e); } } else if ("In".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); if (operator.isLiteral()) { addCriterion(new LiteralInExpression(operator.getName(), (String) operator.getNativeValue())); } else { addCriterion(Restrictions.in(operator.getName(), (Collection) operator.getNativeValue())); } } catch (Exception e) { throw new SAXException("Unable To Parse In:" + attrs.getValue("name"), e); } } else if ("SizeEquals".equalsIgnoreCase(qName)) { try { Operator operator = new Operator(attrs); int i = ((Integer) operator.getNativeValue()).intValue(); addCriterion(Restrictions.sizeEq(operator.getName(), i)); } catch (Exception e) { throw new SAXException("Unable To Parse SizeEquals:" + attrs.getValue("name"), e); } } else if ("Not".equalsIgnoreCase(qName)) { notStack.push(new Object()); } else if ("Or".equalsIgnoreCase(qName)) { opStack.push(Restrictions.disjunction()); } else if ("And".equalsIgnoreCase(qName)) { opStack.push(Restrictions.conjunction()); } else { throw new SAXException("Element Name[" + qName + "] Not Recognized."); } }
From source file:com.hongqiang.shop.modules.cms.service.ArticleService.java
License:Open Source License
public Page<Article> find(Page<Article> page, Article article, boolean isDataScopeFilter) { // ??6??//w w w. j a v a 2s. com Date updateExpiredWeightDate = (Date) CacheUtils.get("updateExpiredWeightDateByArticle"); if (updateExpiredWeightDate == null || (updateExpiredWeightDate != null && updateExpiredWeightDate.getTime() < new Date().getTime())) { articleDao.updateExpiredWeight(); CacheUtils.put("updateExpiredWeightDateByArticle", DateUtils.addHours(new Date(), 6)); } DetachedCriteria dc = articleDao.createDetachedCriteria(); dc.createAlias("category", "category"); dc.createAlias("category.site", "category.site"); if (article.getCategory() != null && article.getCategory().getId() != null && !Category.isRoot(article.getCategory().getId())) { Category category = categoryDao.findOne(article.getCategory().getId()); if (category != null) { dc.add(Restrictions.or(Restrictions.eq("category.id", category.getId()), Restrictions.like("category.parentIds", "%," + category.getId() + ",%"))); dc.add(Restrictions.eq("category.site.id", category.getSite().getId())); article.setCategory(category); } else { dc.add(Restrictions.eq("category.site.id", Site.getCurrentSiteId())); } } else { dc.add(Restrictions.eq("category.site.id", Site.getCurrentSiteId())); } if (StringUtils.isNotEmpty(article.getTitle())) { dc.add(Restrictions.like("title", "%" + article.getTitle() + "%")); } if (StringUtils.isNotEmpty(article.getPosid())) { dc.add(Restrictions.like("posid", "%," + article.getPosid() + ",%")); } if (StringUtils.isNotEmpty(article.getImage()) && Article.YES.equals(article.getImage())) { dc.add(Restrictions.and(Restrictions.isNotNull("image"), Restrictions.ne("image", ""))); } if (article.getCreateBy() != null && article.getCreateBy().getId() > 0) { dc.add(Restrictions.eq("createBy.id", article.getCreateBy().getId())); } if (isDataScopeFilter) { dc.createAlias("category.office", "categoryOffice").createAlias("createBy", "createBy"); dc.add(dataScopeFilter(UserUtils.getUser(), "categoryOffice", "createBy")); } dc.add(Restrictions.eq(Article.DEL_FLAG, article.getDelFlag())); if (StringUtils.isBlank(page.getOrderBy())) { dc.addOrder(Order.desc("weight")); dc.addOrder(Order.desc("updateDate")); } return articleDao.find(page, dc); }
From source file:com.hyzy.core.orm.hibernate.HibernateDao.java
License:Apache License
/** * ??Criterion,.// w w w . j a v a 2s. c o m */ protected Criterion buildCriterion(final String propertyName, final Object propertyValue, final MatchType matchType) { Assert.hasText(propertyName, "propertyName?"); Criterion criterion = null; //?MatchTypecriterion switch (matchType) { case EQ: criterion = Restrictions.eq(propertyName, propertyValue); break; case LIKE: criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.ANYWHERE); break; case LIKEEXACT: criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.EXACT); break; case LIKESTART: criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.START); break; case LIKEEND: criterion = Restrictions.like(propertyName, (String) propertyValue, MatchMode.END); break; case LE: criterion = Restrictions.le(propertyName, propertyValue); break; case LT: criterion = Restrictions.lt(propertyName, propertyValue); break; case GE: criterion = Restrictions.ge(propertyName, propertyValue); break; case GT: criterion = Restrictions.gt(propertyName, propertyValue); break; case NEQ: criterion = Restrictions.ne(propertyName, propertyValue); break; case ISN: criterion = Restrictions.isNull(propertyName); break; case ISNN: criterion = Restrictions.isNotNull(propertyName); break; case IN: criterion = Restrictions.in(propertyName, (Object[]) propertyValue); break; } return criterion; }
From source file:com.ihsolution.hqipo.dao.utils.QueryHelper.java
License:Open Source License
/** * Main conversion method/* ww w .j av a2 s.c om*/ * @param fieldName * @param fieldVal * @param oper (=, equal, IN ...) * @param j (AND OR) * @return */ public QueryHelper addFieldAndVal(String fieldName, Object fieldVal, String oper, Junction j) { boolean isValString = fieldVal instanceof String; String str = ""; if (oper == null || "".equals(oper)) { oper = "equal"; } if (isValString) str = ((String) fieldVal).trim(); if ("equal".equals(oper)) { if (isValString) { j.add(Restrictions.eq(fieldName, str).ignoreCase()); } else j.add(Restrictions.eq(fieldName, fieldVal)); } else if ("notEqual".equals(oper)) { if (isValString) { j.add(Restrictions.ne(fieldName, str).ignoreCase()); } else j.add(Restrictions.ne(fieldName, fieldVal)); } else if ("null".equals(oper)) { j.add(Restrictions.isNull(fieldName)); } else if ("notNull".equals(oper)) { j.add(Restrictions.isNotNull(fieldName)); } else if ("notExists".equals(oper)) { j.add(Restrictions.sqlRestriction(fieldVal.toString())); } else if ("Exists".equals(oper)) { j.add(Restrictions.sqlRestriction(fieldVal.toString())); } else if (isValString) { MatchMode mm = getMatchMode(oper); if (mm != null) j.add(Restrictions.ilike(fieldName, str, mm)); } else if ("le".equals(oper)) j.add(Restrictions.le(fieldName, fieldVal)); else if ("ge".equals(oper)) j.add(Restrictions.ge(fieldName, fieldVal)); else if ("gtProperty".equals(oper)) { String[] spl = ((String) fieldVal).split(";"); if (spl.length == 2) j.add(Restrictions.gtProperty(spl[0], spl[1])); else j.add(Restrictions.gt(fieldName, fieldVal)); } else if ("in".equals(oper)) { if (fieldVal instanceof Collection) j.add(Restrictions.in(fieldName, (Collection) fieldVal)); else if (fieldVal instanceof Object[]) j.add(Restrictions.in(fieldName, (Object[]) fieldVal)); else throw new IllegalArgumentException( "QueryHelper.IN illegal argument type. Should be Collection or Object[]"); } else if ("notIn".equals(oper)) { if (fieldVal instanceof Collection) j.add(Restrictions.not(Restrictions.in(fieldName, (Collection) fieldVal))); else if (fieldVal instanceof Object[]) j.add(Restrictions.not(Restrictions.in(fieldName, (Object[]) fieldVal))); else throw new IllegalArgumentException( "QueryHelper.NOTIN illegal argument type. Should be Collection or Object[]"); } else if ("between".equals(oper)) { Collection objs = (Collection) fieldVal; Iterator it2 = objs.iterator(); Object obj1 = it2.next(); Object obj2 = it2.next(); j.add(Restrictions.between(fieldName, obj1 instanceof String ? obj1.toString().toLowerCase() : obj1, obj2 instanceof String ? obj2.toString().toLowerCase() : obj2)); } else j.add(Restrictions.eq(fieldName, fieldVal)); return this; }