public List getCountAssessmentIdByAreaCode(Map map)
throws Exception {
StringBuffer sbf = new StringBuffer();
sbf.append("SELECT DISTINCT(org.assessId) FROM com.mtm.nhis.hiir.performance.survey.po.AssessmentOrg org WHERE 1=1"); String areaCode = (String)map.get("areaCode");

if("2".equals((String)map.get("userLevel"))){
if("110000".equals(areaCode) || "310000".equals(areaCode) || "120000".equals(areaCode) || "500000".equals(areaCode)){
sbf.append(" AND org.provinceCode = '"+areaCode+"' AND org.countyCode is not null");
}else{
sbf.append(" AND org.provinceCode = '"+areaCode+"' AND org.cityCode is not null");
}
}else if("3".equals((String)map.get("userLevel"))){
sbf.append(" AND org.cityCode = '"+areaCode+"' AND org.countyCode is not null");
}

return assessmentDao.getCountAssessmentIdByAreaCode(sbf.toString());
} @Override
public List getCountAssessmentIdByAreaCode(String sql)
throws Exception {
List assessIdList = (List)this.getHibernateTemplate().find(sql);
return assessIdList;
}这是我service实现类和dao实现类中的两个方法,执行后报错了,错误如下:
org.springframework.orm.hibernate3.HibernateQueryException: aggregate function expected before ( in SELECT [SELECT DISTINCT(org.assessId) FROM com.mtm.nhis.hiir.performance.survey.po.AssessmentOrg org WHERE 1=1 AND org.cityCode = '340500' AND org.countyCode is not null]; nested exception is org.hibernate.QueryException: aggregate function expected before ( in SELECT [SELECT DISTINCT(org.assessId) FROM com.mtm.nhis.hiir.performance.survey.po.AssessmentOrg org WHERE 1=1 AND org.cityCode = '340500' AND org.countyCode is not null]

解决方案 »

  1.   


    @Override
    public List getCountAssessmentIdByAreaCode(Map map)
    throws Exception {
    StringBuffer sbf = new StringBuffer();
    sbf.append("SELECT DISTINCT(org.assessId) FROM com.mtm.nhis.hiir.performance.survey.po.AssessmentOrg org WHERE 1=1"); String areaCode = (String)map.get("areaCode");

    if("2".equals((String)map.get("userLevel"))){
    if("110000".equals(areaCode) || "310000".equals(areaCode) || "120000".equals(areaCode) || "500000".equals(areaCode)){
    sbf.append(" AND org.provinceCode = '"+areaCode+"' AND org.countyCode is not null");
    }else{
    sbf.append(" AND org.provinceCode = '"+areaCode+"' AND org.cityCode is not null");
    }
    }else if("3".equals((String)map.get("userLevel"))){
    sbf.append(" AND org.cityCode = '"+areaCode+"' AND org.countyCode is not null");
    }

    return assessmentDao.getCountAssessmentIdByAreaCode(sbf.toString());
    } @Override
    public List getCountAssessmentIdByAreaCode(String sql)
    throws Exception {

    List assessIdList = (List)this.getHibernateTemplate().find(sql);
    return assessIdList;
    }