public List<T> find(SearchCriteria sc, int firstRow, int maxResults) { Query q = getEntityManager().createQuery(sc.createQuery()); Map<String, Object> parameters = sc.getParameters(); for (String parameterName : parameters.keySet()) { q.setParameter(parameterName, parameters.get(parameterName)); } q.setFirstResult(firstRow); q.setMaxResults(maxResults); return q.getResultList(); }
public int count(SearchCriteria sc) { Query q = getEntityManager().createQuery(sc.createCountQuery()); Map<String, Object> parameters = sc.getParameters(); for (String parameterName : parameters.keySet()) { q.setParameter(parameterName, parameters.get(parameterName)); } Long count = (Long) q.getSingleResult(); if (count != null) { return count.intValue(); } return 0; }