Example usage for org.hibernate.criterion Restrictions in

List of usage examples for org.hibernate.criterion Restrictions in

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions in.

Prototype

public static Criterion in(String propertyName, Collection values) 

Source Link

Document

Apply an "in" constraint to the named property.

Usage

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;
}