public List<T> findByMap(String hql, final Map<String, Object> params) { // Query query = getSession().createQuery(hql); // for(String field:params.keySet()) // query.setParameter(field,params.get(field)); Criteria criteria = getSession().createCriteria(clazz); criteria.add(Restrictions.allEq(params)); return criteria.list(); }
/** Use this inside subclasses as a convenience method. */ @SuppressWarnings("unchecked") protected List<T> findByCriteria(Criterion... criterion) { Criteria crit = getSession().createCriteria(getEntityClass()); for (Criterion c : criterion) { crit.add(c); } return crit.list(); }
@SuppressWarnings("unchecked") @Override public List<Lancamento> listar(Conta conta, Date dataInicio, Date dataFim) { Criteria criteria = this.session.createCriteria(Lancamento.class); if (dataInicio != null && dataFim != null) { criteria.add(Restrictions.between("data", dataInicio, dataFim)); } else if (dataInicio != null) { criteria.add(Restrictions.ge("data", dataInicio)); } else if (dataFim != null) { criteria.add(Restrictions.le("data", dataFim)); } criteria.add(Restrictions.eq("conta", conta)); criteria.addOrder(Order.asc("data")); return criteria.list(); }
public final Map<String, Object> findByMap( final Map<String, Object> params, int page, int rows, String order, boolean asc) throws HibernateException { Criteria criteria = getSession().createCriteria(clazz); Long total; if (null != params) criteria.add(Restrictions.allEq(params)); total = (Long) criteria.setProjection(Projections.rowCount()).uniqueResult(); criteria.setProjection(null).setResultTransformer(Criteria.ROOT_ENTITY); if (page > 0 && rows > 0) criteria.setFirstResult((page - 1) * rows).setMaxResults(rows); if (null != order) { if (asc) criteria.addOrder(Order.asc(order)); else criteria.addOrder(Order.desc(order)); } Map<String, Object> result = new HashMap<String, Object>(); result.put("total", total); result.put("rows", (List<T>) criteria.list()); return result; }