List of usage examples for org.hibernate.criterion Restrictions in
public static Criterion in(String propertyName, Collection values)
From source file:com.bookselling.dao.UserDaoImpl.java
@Override public Set<User> whoHasMorePost() { SQLQuery sqlQuery = getSession()//from w ww . j a v a2 s.c om .createSQLQuery("select u.id " + "from user u, sellingPost slp " + "where u.id = slp.userId " + "group by u.id " + "having COUNT(*) > 0 " + "order by COUNT(*) desc " + "limit 5 "); List<Integer> data = sqlQuery.list(); Criteria criteria = getSession().createCriteria(User.class); if (data.size() != 0) criteria.add(Restrictions.in("id", data)); Set<User> users = new HashSet<>(criteria.list()); HibernateInitSupport.setCls(User.class); for (User user : users) { HibernateInitSupport.initDomain(user); } return users; }
From source file:com.bookselling.dao.UserDaoImpl.java
@Override public Map<User, Double> mostValueableBuyer() { Map<User, Double> stat = new HashMap<>(); SQLQuery sqlQuery = getSession().createSQLQuery( "select u.id, SUM(totalPrice) value " + "from user u, trade t " + "where u.id = t.buyerId " + "group by u.id " + "having value > 0 " + "order by value desc " + "limit 5 "); List<Object[]> rows = sqlQuery.list(); Set<Integer> ids = new HashSet<>(); for (Object[] row : rows) { ids.add((Integer) row[0]); }//from w ww .j av a2s.c o m if (!ids.isEmpty()) { Criteria criteria = getSession().createCriteria(User.class); criteria.add(Restrictions.in("id", ids)); List<User> users = criteria.list(); int index = 0; HibernateInitSupport.setCls(User.class); for (User user : users) { HibernateInitSupport.initDomain(user); stat.put(user, (Double) rows.get(index)[1]); } } return stat; }
From source file:com.chevres.rss.restapi.dao.impl.ArticleDAOImpl.java
@Override public List<Article> findArticlesByPageId(List<Feed> feeds, int pageNumber) { List<Article> articles; Session session = this.getSessionFactory().openSession(); Transaction tx;/* w w w.j a v a 2 s. com*/ try { tx = session.beginTransaction(); Criteria criteria = session.createCriteria(Article.class); articles = criteria.add(Restrictions.in("feed", feeds)).addOrder(Order.desc("pubDate")) .setFirstResult((pageNumber - 1) * ARTICLE_BY_PAGE).setMaxResults(ARTICLE_BY_PAGE).list(); tx.commit(); } catch (Exception e) { throw e; } finally { session.close(); } return articles; }
From source file:com.chevres.rss.restapi.dao.impl.FeedDAOImpl.java
@Override public int getNewArticles(List<Feed> feeds, ArticleState newState) { int newArticles; Session session = this.getSessionFactory().openSession(); Transaction tx;// ww w . j a va 2 s . com try { tx = session.beginTransaction(); Criteria criteria = session.createCriteria(Article.class); newArticles = criteria.add(Restrictions.in("feed", feeds)).add(Restrictions.eq("status", newState)) .list().size(); tx.commit(); } catch (Exception e) { throw e; } finally { session.close(); } return newArticles; }
From source file:com.cimmyt.model.dao.impl.AbstractDAO.java
License:Apache License
/** * adds a criterion to a Junction(conjunction/disjunction), based on the meta-data passed. * /* ww w . j a v a2s .c o m*/ * @param junction The Junction to conditionally add a criterion * @param condition The type of criterion: like, equals, etc. * @param dataType Indicates if its a numeric or character value for a filter * @param qualifiedParam the qualified parameter for a query * @param value The string value to use in the criterion */ public void addDynamicCriterion(Junction junction, Operator condition, DataType dataType, String qualifiedParam, String value) { if (!qualifiedParam.equals("sample.studysampleid")) { if (dataType == DataType.STRING) { if (condition == Operator.TypeString.LIKE) { junction.add(Restrictions.like(qualifiedParam, value, MatchMode.ANYWHERE)); } else if (condition == Operator.TypeString.EQUAL) { junction.add(Restrictions.like(qualifiedParam, value, MatchMode.EXACT)); } else if (condition == Operator.TypeString.NOT_EQUAL) { junction.add(Restrictions.ne(qualifiedParam, value)); } else if (condition == Operator.TypeString.NOT_LIKE) { junction.add(Restrictions.not(Restrictions.like(qualifiedParam, value, MatchMode.ANYWHERE))); } } else if (dataType == DataType.NUMBER) { if (condition == Operator.TypeNumber.EQUALS) { junction.add(Restrictions.eq(qualifiedParam, Integer.valueOf(value))); } else if (condition == Operator.TypeNumber.GREATER) { junction.add(Restrictions.ge(qualifiedParam, Integer.valueOf(value))); } if (condition == Operator.TypeNumber.LESS) { junction.add(Restrictions.le(qualifiedParam, Integer.valueOf(value))); } else if (condition == Operator.TypeNumber.NOT_EQUALS) { junction.add(Restrictions.ne(qualifiedParam, Integer.valueOf(value))); } else if (condition == Operator.TypeNumber.IN) { List<Integer> listStr = new ArrayList<Integer>(); String[] arr = value.split(","); for (int i = 0; i < arr.length; i++) { try { if (!arr[i].trim().equals("")) listStr.add(Integer.parseInt(arr[i])); } catch (Exception ex) { ex.printStackTrace(); } } junction.add(Restrictions.in(qualifiedParam, listStr)); } } } else { String prefix = StrUtils.getPrefixSampleFindString(value); int id = StrUtils.getSampleIDFindString(value); if (prefix.trim().equals("")) prefix = value; if (condition == Operator.TypeString.LIKE) { junction.add(Restrictions.like("study.prefix", prefix, MatchMode.ANYWHERE)); if (id > 0) junction.add(Restrictions.eq("sample.samplegid", id)); } else if (condition == Operator.TypeString.EQUAL) { junction.add(Restrictions.eq("study.prefix", prefix)); if (id > 0) junction.add(Restrictions.eq("sample.samplegid", id)); } else if (condition == Operator.TypeString.NOT_EQUAL) { junction.add(Restrictions.ne("study.prefix", prefix)); if (id > 0) junction.add(Restrictions.ne("sample.samplegid", id)); } else if (condition == Operator.TypeString.NOT_LIKE) { junction.add(Restrictions.not(Restrictions.like("study.prefix", prefix, MatchMode.ANYWHERE))); if (id > 0) junction.add(Restrictions.not(Restrictions.eq("sample.samplegid", id))); } } }
From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java
License:Apache License
private void addCurrentSampleFilters(DetachedCriteria criteria, List<Integer> studyIdList) { if (studyIdList != null) { if (studyIdList.size() > 0) criteria.add(Restrictions.in("labstudyid", studyIdList)); else//from ww w. j a v a 2 s . c om criteria.add(Restrictions.isNull("labstudyid")); } }
From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java
License:Apache License
/** * Gets a list of samples from a Study by it ID, excluding samples selected * for SENT to external company and excluding samples in excluedSamples * parameter// w ww . j a v a 2 s .c o m * * @param labStudyId * Study ID * @param excludedSamples * list of samples to exclude * @return List of samples with matching ID, empty list if not matching ID * or all samples are in excluedSamples */ @Override @SuppressWarnings("unchecked") public List<SampleDetail> getSamplesByStudy(final Integer labStudyId, final List<Integer> excludedSamples) { List<SampleDetail> sampleDetails = null; DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class); criteria.add(Restrictions.eq("labstudyid.labstudyid", labStudyId)); criteria.add(Restrictions.ne("selforsend", ShipmentStatus.FOR_SEND.getId())); if (excludedSamples.size() > 0) { criteria.add(Restrictions.not(Restrictions.in("studysampleid", excludedSamples))); } sampleDetails = (List<SampleDetail>) getHibernateTemplate().findByCriteria(criteria); return sampleDetails; }
From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java
License:Apache License
@SuppressWarnings("unchecked") public List<SampleDetail> getSamplesByStudyUsedInStorageLocation(final Integer labStudyId, final List<Integer> excludedSamples, int firstResult, int maxResults) { List<SampleDetail> sampleDetails = null; DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class); criteria.add(Restrictions.eq("labstudyid.labstudyid", labStudyId)); criteria.add(Restrictions.eq("selforsend", ShipmentStatus.NO_SELECTED.getId())); if (excludedSamples.size() > 0) { criteria.add(Restrictions.not(Restrictions.in("studysampleid", excludedSamples))); }//from w ww . ja v a 2s . co m sampleDetails = (List<SampleDetail>) getHibernateTemplate().findByCriteria(criteria, firstResult, maxResults); return sampleDetails; }
From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java
License:Apache License
public Integer getSamplesByStudyUsedInStorageLocationTotal(Integer labStudyId, List<Integer> excludedSamples) { Integer numberSamples = null; DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class); criteria.add(Restrictions.eq("labstudyid.labstudyid", labStudyId)); criteria.add(Restrictions.eq("selforsend", ShipmentStatus.NO_SELECTED.getId())); if (excludedSamples.size() > 0) { criteria.add(Restrictions.not(Restrictions.in("studysampleid", excludedSamples))); }/*from ww w . j a v a2 s .c om*/ criteria.setProjection(Projections.rowCount()); numberSamples = (Integer) getHibernateTemplate().findByCriteria(criteria).get(0); return numberSamples; }
From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java
License:Apache License
public List<String> getPlatesNotInShipmentSet(final Integer idLabStudy, final List<String> excludingPlates) { List<String> listPlate = (List<String>) getHibernateTemplate() .execute(new HibernateCallback<List<String>>() { public List<String> doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(SampleDetail.class); criteria.add(Restrictions.eq("labstudyid.labstudyid", idLabStudy)); if (excludingPlates != null && !excludingPlates.isEmpty()) criteria.add(Restrictions.not(Restrictions.in("platename", excludingPlates))); criteria.add(Restrictions.eq("selforsend", "N")); criteria.setProjection(Projections.distinct(Projections.property("platename"))); criteria.addOrder(Order.asc("platename")); @SuppressWarnings("unchecked") List<String> results = criteria.list(); return results; }//from ww w .ja v a2s .co m }); return listPlate; }