@RolesAllowed("user") public Long aggByQuery(String agg, String field, String query, Parameters params) { if (!AGGS.matcher(agg).matches()) { throw new ValidationException(agg + " does not match " + AGGS); } if (!FIELD.matcher(field).matches()) { throw new ValidationException(field + " does not match " + FIELD); } final QueryBuilder qb = new QueryBuilder(); qb.select(agg + "("+field+")").append(query); qb.params(params); return (Long) getHibernateTemplate().execute( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { return qb.query(session).uniqueResult(); } }); }
qb.select(mapKey, agg + "(" + field + ")").append(query); qb.append(" group by " + mapKey); qb.params(params); List<Object[]> list = (List<Object[]>) getHibernateTemplate().execute( new HibernateCallback() {