@SuppressWarnings("unchecked") public List<T> find(T entity, SearchTemplate searchTemplate) { Validate.notNull(entity, "The passed entity cannot be null"); SearchTemplate localSearchTemplate = getLocalSearchTemplate(searchTemplate); if (localSearchTemplate.hasNamedQuery()) { return (List<T>) getNamedQueryUtil().findByNamedQuery(localSearchTemplate, entity); } Criteria criteria = getCriteria(entity, localSearchTemplate); HibernateUtil.applyPaginationAndOrderOnCriteria(criteria, localSearchTemplate); List<T> entities = (List<T>) criteria.list(); if (log.isDebugEnabled()) { log.debug("Returned " + entities.size() + " elements"); } return entities; }