List of usage examples for org.hibernate.criterion DetachedCriteria addOrder
public DetachedCriteria addOrder(Order order)
From source file:org.ambraproject.rhino.service.impl.ArticleCrudServiceImpl.java
License:Open Source License
@Override public Collection<String> getArticleDoisForDateRange(int pageNumber, int pageSize, SortOrder sortOrder, Optional<LocalDateTime> fromDate, Optional<LocalDateTime> toDate) { final long totalArticles = hibernateTemplate.execute(session -> { final Query query = session.createQuery("select count(*) from Article"); final Long count = (Long) query.uniqueResult(); return count; });//from ww w . j ava 2s . c o m if (totalArticles > 0L) { pageNumber = max(pageNumber, 1); final int maxResults = min(pageSize, MAX_PAGE_SIZE); final int firstResult = (pageNumber - 1) * maxResults; if (LOG.isDebugEnabled()) { LOG.debug("pageNumber: {}, pageSize: {}", pageNumber, pageSize); LOG.debug("firstResult: {}, maxResults: {}", firstResult, maxResults); LOG.debug("sortOrder: {}", sortOrder); } if (firstResult < totalArticles) { final DetachedCriteria criteria = DetachedCriteria.forClass(Article.class); final ProjectionList projections = Projections.projectionList(); projections.add(Projections.property("doi" /* propertyName */)); criteria.setProjection(projections); // Set restrictions for filtering on date range, if any. if (fromDate.isPresent()) { criteria.add(Restrictions.ge("created" /* propertyName */, java.sql.Timestamp.valueOf(fromDate.get()))); } if (toDate.isPresent()) { criteria.add(Restrictions.le("created" /* propertyName */, java.sql.Timestamp.valueOf(toDate.get()))); } if (sortOrder == SortOrder.OLDEST) { criteria.addOrder(Order.asc("created" /* propertyName */)); } else { criteria.addOrder(Order.desc("created" /* propertyName */)); } @SuppressWarnings("unchecked") final List<String> articleDois = (List<String>) hibernateTemplate.findByCriteria(criteria, firstResult, maxResults); return articleDois; } } return ImmutableList.of(); }
From source file:org.ambraproject.service.annotation.AnnotationServiceImpl.java
License:Apache License
@Override @Transactional(readOnly = true)//from w w w.j a v a2s .c o m public AnnotationView[] listAnnotationsNoReplies(final Long articleID, final Set<AnnotationType> annotationTypes, final AnnotationOrder order) { if (order == AnnotationOrder.MOST_RECENT_REPLY) { throw new IllegalArgumentException( "Cannot specify Most Recent Reply order type when replies are not being loaded up"); } //Basic criteria DetachedCriteria criteria = DetachedCriteria.forClass(Annotation.class) .add(Restrictions.eq("articleID", articleID)).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); //restrict by type if (annotationTypes != null && !annotationTypes.isEmpty()) { criteria.add(Restrictions.in("type", annotationTypes)); } switch (order) { case OLDEST_TO_NEWEST: criteria.addOrder(Order.asc("created")); break; case NEWEST_TO_OLDEST: criteria.addOrder(Order.desc("created")); break; } List annotationResults = hibernateTemplate.findByCriteria(criteria); //Don't want to call buildAnnotationView() here because that would involve finding the article title and doi for each annotation, // when we only need to do it once. So load up the info we need to build annotation views here Object[] articleTitleAndDoi; try { articleTitleAndDoi = (Object[]) hibernateTemplate .findByCriteria(DetachedCriteria.forClass(Article.class).add(Restrictions.eq("ID", articleID)) .setProjection(Projections.projectionList().add(Projections.property("doi")) .add(Projections.property("title"))), 0, 1) .get(0); } catch (IndexOutOfBoundsException e) { throw new IllegalArgumentException("article " + articleID + " didn't exist"); } String articleDoi = (String) articleTitleAndDoi[0]; String articleTitle = (String) articleTitleAndDoi[1]; List<AnnotationView> viewResults = new ArrayList<AnnotationView>(annotationResults.size()); for (Object annotation : annotationResults) { viewResults.add(new AnnotationView((Annotation) annotation, articleDoi, articleTitle, null)); } return viewResults.toArray(new AnnotationView[viewResults.size()]); }
From source file:org.capelin.transaction.dao.RecordDao.java
License:GNU General Public License
/** * List all relevant record.//from w ww .j a va 2s. com * * @param field * @param value * @param pageNumber * @param ascending * @return PagedResults */ public PagedResults listPaged(String field, String value, int pageNumber, boolean ascending) { DetachedCriteria criteria = DetachedCriteria.forClass(recordClass); criteria.add(Restrictions.ilike(field, value, MatchMode.START)); if (ascending) { criteria.addOrder(Order.asc(field)); } else { criteria.addOrder(Order.desc(field)); } List<?> result = getHibernateTemplate().findByCriteria(criteria, getFirstResultNumber(pageNumber), getPageSize()); Criteria crit = getSession().createCriteria(recordClass); crit.add(Restrictions.ilike(field, value, MatchMode.START)); Number total = (Number) crit.setProjection(Projections.rowCount()).uniqueResult(); return new PagedResults(total.intValue(), getTotalPageNumber(total.intValue()), result); }
From source file:org.caratarse.auth.model.util.CriteriaFilterHelper.java
License:Apache License
public static void addQueryOrder(final DetachedCriteria crit, QueryOrder order) { if (order == null) { return;//from w ww . j a v a 2 s . co m } if (order.isSorted()) { order.iterate(new OrderCallback() { @Override public void orderBy(OrderComponent component) { if (component.isAscending()) { crit.addOrder(Order.asc(component.getFieldName())); } else { crit.addOrder(Order.desc(component.getFieldName())); } } }); } }
From source file:org.cobbzilla.wizard.dao.AbstractCRUDDAO.java
protected DetachedCriteria sort(DetachedCriteria criteria) { final Order order = getDefaultSortOrder(); return order == null ? criteria : criteria.addOrder(order); }
From source file:org.conventionsframework.dao.impl.BaseHibernateDaoImpl.java
License:Apache License
@Override public PaginationResult<T> executePagination(SearchModel<T> searchModel, final DetachedCriteria dc) { int size = getRowCount(dc).intValue(); String sortField = searchModel.getSortField(); if (sortField != null) { if (searchModel.getSortOrder().equals(SortOrder.UNSORTED)) { searchModel.setSortOrder(SortOrder.ASCENDING); }//from w w w . j a va 2 s .c o m if (searchModel.getSortOrder().equals(SortOrder.ASCENDING)) { dc.addOrder(Order.asc(sortField)); } else { dc.addOrder(Order.desc(sortField)); } dc.addOrder(Order.asc(getSession().getSessionFactory().getClassMetadata(getPersistentClass()) .getIdentifierPropertyName())); } List<T> data = this.findByCriteria(dc, searchModel.getFirst(), searchModel.getPageSize()); return new PaginationResult<T>(data, size); }
From source file:org.encuestame.persistence.dao.imp.AccountDaoImp.java
License:Apache License
public final List<UserAccount> retrieveListOwnerUsers(final Account account, final Integer maxResults, final Integer start) { final DetachedCriteria criteria = DetachedCriteria.forClass(UserAccount.class); criteria.add(Restrictions.eq("account", account)); criteria.setFetchMode("secUserPermissions", FetchMode.SELECT); criteria.addOrder(Order.asc("enjoyDate")); getHibernateTemplate().setCacheQueries(true); return (List<UserAccount>) getHibernateTemplate().findByCriteria(criteria, start, maxResults); }
From source file:org.encuestame.persistence.dao.imp.CommentDao.java
License:Apache License
@SuppressWarnings("unchecked") public List<Comment> getCommentsbyUser(final UserAccount userAcc, final Integer maxResults, final Integer start, final List<CommentOptions> commentOptions) { final DetachedCriteria criteria = DetachedCriteria.forClass(Comment.class); criteria.add(Restrictions.eq("user", userAcc)); criteria.addOrder(Order.desc("createdAt")); criteria.addOrder(Order.desc("likeVote")); if ((commentOptions.size() != 1) && (!commentOptions.get(0).equals(CommentOptions.ALL))) { criteria.add(Restrictions.in("commentOptions", commentOptions)); }//from www .j a v a 2 s .c o m return (List<Comment>) filterByMaxorStart(criteria, maxResults, start); }
From source file:org.encuestame.persistence.dao.imp.CommentDao.java
License:Apache License
@SuppressWarnings("unchecked") public List<Comment> getCommentsbyTweetPoll(final TweetPoll tpoll, final Integer maxResults, final Integer start) { final DetachedCriteria criteria = DetachedCriteria.forClass(Comment.class); criteria.add(Restrictions.eq("tweetPoll", tpoll)); criteria.addOrder(Order.desc("likeVote")); return (List<Comment>) filterByMaxorStart(criteria, maxResults, start); }
From source file:org.encuestame.persistence.dao.imp.CommentDao.java
License:Apache License
@SuppressWarnings("unchecked") public List<Comment> getCommentsbyTypeAndStatus(final Long id, final TypeSearchResult typeSearch, final Integer maxResults, final Integer start, final CommentOptions commentOptions, final SearchPeriods period) { final DetachedCriteria criteria = DetachedCriteria.forClass(Comment.class); if (typeSearch.equals(TypeSearchResult.TWEETPOLL)) { criteria.createAlias("tweetPoll", "tweetPoll"); criteria.add(Restrictions.eq("tweetPoll.tweetPollId", id)); } else if (typeSearch.equals(TypeSearchResult.POLL)) { criteria.createAlias("poll", "poll"); criteria.add(Restrictions.eq("poll.pollId", id)); } else if (typeSearch.equals(TypeSearchResult.SURVEY)) { criteria.createAlias("survey", "survey"); criteria.add(Restrictions.eq("survey.sid", id)); } else {//from ww w.ja v a 2s .c o m log.error(" Search result type undefined " + typeSearch.toString()); } criteria.addOrder(Order.desc("likeVote")); if (!commentOptions.equals(CommentOptions.ALL)) { criteria.add(Restrictions.eq("commentOptions", commentOptions)); } if (period != null) { calculateSearchPeriodsDates(period, criteria, "createdAt"); } return (List<Comment>) filterByMaxorStart(criteria, maxResults, start); }