List of usage examples for org.hibernate.criterion DetachedCriteria addOrder
public DetachedCriteria addOrder(Order order)
From source file:org.encuestame.persistence.dao.imp.TweetPollDao.java
License:Apache License
@SuppressWarnings("unchecked") //TODO: please use FrontEndDao new method. /*//from w ww . j ava 2 s .c o m * List<TweetPollSavedPublishedStatus> getLinksByHomeItem replace this method. */ public List<TweetPollSavedPublishedStatus> getLinksByTweetPoll(final TweetPoll tweetPoll, final Survey survey, final Poll poll, final TypeSearchResult itemType) { final DetachedCriteria criteria = DetachedCriteria.forClass(TweetPollSavedPublishedStatus.class); if (itemType.equals(TypeSearchResult.TWEETPOLL)) { criteria.add(Restrictions.eq("tweetPoll", tweetPoll)); // criteria.addOrder(Order.desc("tweetPoll.createDate")); } else if (itemType.equals(TypeSearchResult.POLL)) { criteria.add(Restrictions.eq("poll", poll)); // criteria.addOrder(Order.desc("survey.createdAt")); } else if (itemType.equals(TypeSearchResult.SURVEY)) { criteria.add(Restrictions.eq("survey", survey)); // criteria.addOrder(Order.desc("poll.createdAt")); } else { log.error("Item type not valid: " + itemType); } criteria.addOrder(Order.desc("publicationDateTweet")); criteria.add(Restrictions.isNotNull("apiType")); criteria.add(Restrictions.isNotNull("tweetId")); criteria.add(Restrictions.eq("status", Status.SUCCESS)); return (List<TweetPollSavedPublishedStatus>) getHibernateTemplate().findByCriteria(criteria); }
From source file:org.encuestame.persistence.dao.imp.TweetPollDao.java
License:Apache License
@SuppressWarnings("unchecked") public List<TweetPollSavedPublishedStatus> getAllLinks(final TweetPoll tweetPoll, final Survey survey, final Poll poll, final TypeSearchResult itemType) { final DetachedCriteria criteria = DetachedCriteria.forClass(TweetPollSavedPublishedStatus.class); if (itemType.equals(TypeSearchResult.TWEETPOLL)) { criteria.add(Restrictions.eq("tweetPoll", tweetPoll)); // criteria.addOrder(Order.desc("tweetPoll.createDate")); } else if (itemType.equals(TypeSearchResult.POLL)) { criteria.add(Restrictions.eq("poll", poll)); // criteria.addOrder(Order.desc("survey.createdAt")); } else if (itemType.equals(TypeSearchResult.SURVEY)) { criteria.add(Restrictions.eq("survey", survey)); // criteria.addOrder(Order.desc("poll.createdAt")); } else {// w ww .ja v a 2 s .com log.error("Item type not valid: " + itemType); } criteria.addOrder(Order.desc("publicationDateTweet")); return (List<TweetPollSavedPublishedStatus>) getHibernateTemplate().findByCriteria(criteria); }
From source file:org.encuestame.persistence.dao.imp.TweetPollDao.java
License:Apache License
@SuppressWarnings("unchecked") public List<TweetPoll> getTweetPolls(final Integer maxResults, final Integer start, final Date range) { final DetachedCriteria criteria = DetachedCriteria.forClass(TweetPoll.class); criteria.add(Restrictions.eq("publishTweetPoll", Boolean.TRUE)); // criteria.add(Restrictions.gt("createDate", range)); criteria.addOrder(Order.desc("createDate")); return (List<TweetPoll>) filterByMaxorStart(criteria, maxResults, start); }
From source file:org.encuestame.persistence.dao.imp.TweetPollDao.java
License:Apache License
@SuppressWarnings("unchecked") public List<TweetPoll> getTweetPollByUsername(final Integer limitResults, final UserAccount account) { final DetachedCriteria criteria = DetachedCriteria.forClass(TweetPoll.class); criteria.add(Restrictions.eq("publishTweetPoll", Boolean.TRUE)); criteria.add(Restrictions.eq("editorOwner", account)); criteria.addOrder(Order.desc("createDate")); return (List<TweetPoll>) filterByMaxorStart(criteria, limitResults, 0); }
From source file:org.encuestame.persistence.dao.imp.TweetPollDao.java
License:Apache License
@SuppressWarnings("unchecked") public List<Object[]> getTweetPollsRangeStats(final String tagName, final SearchPeriods period) { final DetachedCriteria detached = DetachedCriteria.forClass(TweetPoll.class) .createAlias("hashTags", "hashTags").setProjection(Projections.id()) .add(Subqueries.propertyIn("hashTags.hashTagId", DetachedCriteria.forClass(HashTag.class, "hash").setProjection(Projections.id()) .add(Restrictions.in("hash.hashTag", new String[] { tagName })))); final DetachedCriteria criteria = DetachedCriteria.forClass(TweetPoll.class, "tweetPoll"); criteria.add(Subqueries.propertyIn("tweetPoll.tweetPollId", detached)); criteria.addOrder(Order.desc("tweetPoll.createDate")); criteria.add(Restrictions.eq("publishTweetPoll", Boolean.TRUE)); ProjectionList projList = Projections.projectionList(); projList.add(Projections.groupProperty("createDate")); projList.add(Projections.rowCount()); criteria.setProjection(projList);/*from w w w. j ava 2 s . c o m*/ calculateSearchPeriodsDates(period, criteria, "createDate"); return (List<Object[]>) getHibernateTemplate().findByCriteria(criteria); }
From source file:org.eulerframework.web.core.base.dao.impl.hibernate5.BaseDao.java
License:Apache License
@Override public PageResponse<T> pageQuery(PageQueryRequest pageQueryRequest, List<Criterion> criterions, List<Order> orders, Projection projection, Map<String, FetchMode> fetchMode) { DetachedCriteria detachedCriteria = this.analyzeQueryRequest(pageQueryRequest); if (!CollectionUtils.isEmpty(criterions)) { for (Criterion c : criterions) { detachedCriteria.add(c);//from w w w. j av a 2s. c om } } if (!CollectionUtils.isEmpty(orders)) { for (Order d : orders) { detachedCriteria.addOrder(d); } } if (!CollectionUtils.isEmpty(fetchMode)) { for (Map.Entry<String, FetchMode> entry : fetchMode.entrySet()) { String property = entry.getKey(); FetchMode propertyFetchMode = entry.getValue(); detachedCriteria.setFetchMode(property, propertyFetchMode); } } return this.pageQuery(detachedCriteria, pageQueryRequest.getPageIndex(), pageQueryRequest.getPageSize(), projection); }
From source file:org.eulerframework.web.core.base.dao.impl.hibernate5.BaseDao.java
License:Apache License
protected DetachedCriteria analyzeQueryRequest(QueryRequest queryRequest) { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(this.entityClass); Map<String, String> queryMap = queryRequest.getQueryMap(); if (queryRequest.useOr()) { List<Criterion> criterions = new ArrayList<>(); for (Map.Entry<String, String> entry : queryMap.entrySet()) { String property = entry.getKey(); String value = entry.getValue(); if (StringUtils.isNull(value)) continue; QueryMode queryMode = queryRequest.getQueryMode(property); try { criterions.add(this.generateRestriction(property, value, queryMode)); } catch (NumberFormatException e) { this.logger.warn(e.getMessage() + " property:" + property); }//from www . jav a2s .c o m } detachedCriteria.add(Restrictions.or(criterions.toArray(new Criterion[0]))); } else { for (Map.Entry<String, String> entry : queryMap.entrySet()) { String property = entry.getKey(); String value = entry.getValue(); if (StringUtils.isNull(value)) continue; QueryMode queryMode = queryRequest.getQueryMode(property); detachedCriteria.add(this.generateRestriction(property, value, queryMode)); } } LinkedHashMap<String, OrderMode> sortMap = queryRequest.getSortMap(); for (Map.Entry<String, OrderMode> entry : sortMap.entrySet()) { String property = entry.getKey(); OrderMode value = entry.getValue(); if (value == null) continue; detachedCriteria.addOrder(this.analyzeOrderMode(property, value)); } return detachedCriteria; }
From source file:org.faster.orm.criteria.GenericCriteria.java
License:Open Source License
public DetachedCriteria buildCriteria() { beforeBuildCriteria();// w ww .j a va2s. com 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.faster.orm.service.hibernate.with.property.HibernateGenericServiceWithNameAndTimestamp.java
License:Open Source License
@SuppressWarnings("unchecked") @Override/*from w w w. j a v a 2 s .c o m*/ public PO findLastByCriteria(DetachedCriteria criteria, QueryOption queryOption) { StopWatch sw = null; if (log.isDebugEnabled()) { log.debug("Finding last {} with cache {} by {}", new Object[] { persistClassName, getCacheDisplay(queryOption.isCacheEnabled()), criteria }); sw = new StopWatch(); sw.start(); } criteria.addOrder(Order.desc(getFieldNameOfTimestamp())); PO ret = (PO) fetchSingle(criteria, queryOption); if (log.isDebugEnabled()) { log.debug("Last {} is {}. ({} ms)", new Object[] { persistClassName, ret, sw.getTime() }); } return ret; }
From source file:org.fornax.cartridges.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByExampleAccessImpl.java
License:Apache License
@Override public void performExecute() throws PersistenceException { Example example = createExample();//from ww w .j a va2 s .co m if (excludeProperties != null) { for (int i = 0; i < excludeProperties.length; i++) { example.excludeProperty(excludeProperties[i]); } } DetachedCriteria crit = createCriteria(example); if (orderBy != null) { if (orderByAsc) { crit.addOrder(Order.asc(orderBy)); } else { crit.addOrder(Order.desc(orderBy)); } } Session hibernateSession = HibernateSessionHelper.getHibernateSession(getEntityManager()); final Criteria criteria = crit.getExecutableCriteria(hibernateSession); prepareCache(criteria); result = executeFind(criteria); }