protected Response query(Request request, DetachedCriteria obj, boolean lazyLoad, int maxResult) throws Exception { Response rsp = new Response(); log.info("Detached Criteria Query :" + obj.toString()); if (request.getIsCount() != null && request.getIsCount()) { obj = (DetachedCriteria) SerializationUtils.clone(obj); HibernateCallback callBack = getExecuteCountCriteriaHibernateCallback(obj); Integer rowCount = (Integer) getHibernateTemplate().execute(callBack); log.debug("DetachedCriteria ORMDAOImpl ===== count = " + rowCount); rsp.setRowCount(rowCount); } else { HibernateCallback callBack = getExecuteFindQueryCriteriaHibernateCallback( obj, lazyLoad, request.getFirstRow() == null ? -1 : request.getFirstRow(), maxResult > 0 ? maxResult : this.getResultCountPerQuery()); List rs = (List) getHibernateTemplate().execute(callBack); rsp.setRowCount(rs.size()); rsp.setResponse(rs); } return rsp; }
// if (obj instanceof HQLCriteria) protected Response query( Request request, HQLCriteria hqlCriteria, boolean lazyLoad, int maxResult) throws Exception { if (request.getIsCount() != null && request.getIsCount()) { String countQ = hqlCriteria.getCountHqlString(); if (countQ == null) countQ = getCountQuery(hqlCriteria.getHqlString()); log.info("HQL Query :" + countQ); Response rsp = new Response(); HibernateCallback callBack = getExecuteCountQueryHibernateCallback(countQ, hqlCriteria.getParameters()); Integer rowCount = Integer.parseInt(getHibernateTemplate().execute(callBack) + ""); log.debug("HQL Query : count = " + rowCount); rsp.setRowCount(rowCount); return rsp; } else { log.info("HQL Query :" + hqlCriteria.getHqlString()); Response rsp = new Response(); HibernateCallback callBack = getExecuteFindQueryHibernateCallback( hqlCriteria.getHqlString(), hqlCriteria.getParameters(), lazyLoad, request.getFirstRow() == null ? -1 : request.getFirstRow(), maxResult > 0 ? maxResult : this.getResultCountPerQuery()); List rs = (List) getHibernateTemplate().execute(callBack); rsp.setRowCount(rs.size()); rsp.setResponse(rs); return rsp; } }