错误: org.hibernate.hql.ast.QuerySyntaxException: expecting CLOSE, found '(' near line 1, column 279 
SELECT ExamModel.examName as exam_name,SubjectModel.subjectId as subject_id,
 count(ExamDetailModel.studentId) AS count_people,
concat(GradeModel.gradeName,SubjectModel.subjectName) as title_t,
concat(PaperModel.totalscore) as total_score,
cast(avg(ExamDetailModel.score) as decimal(6,2)) as avg_score,
year(ExamModel.examDatetime) as date_time
 FROM com.kapno.ctb.model.ClassModel ,com.kapno.ctb.model.ExamModel ,com.kapno.ctb.model.PaperModel,com.kapno.ctb.model.ExamDetailModel,com.kapno.ctb.model.SubjectModel,com.kapno.ctb.model.GradeModel,com.kapno.ctb.model.AreaModel 
where AreaModel.areaId = '13' 
and GradeModel.gradeId = '9' 
and ClassModel.year like '%2011%'
 and SubjectModel.subjectId = '1' 
and ExamModel.areaModel.areaId = AreaModel.areaId 
and ExamModel.gradeModel.gradeId = GradeModel.gradeId 
and ExamModel.examId = ExamDetailModel.examModel.examId 
and ExamDetailModel.classId = ClassModel.classId 
and PaperModel.paperId = ExamModel.paperModel.paperId 
and GradeModel.gradeId = ClassModel.gradeModel.gradeId 
and SubjectModel.subjectId = ExamDetailModel.subjectId 
and ExamDetailModel.problemModel.problemId is null 
and ExamDetailModel.status <> 0 
group by date_time,exam_name,ExamDetailModel.subjectIdorder by date_time DESC

解决方案 »

  1.   

    org.hibernate.hql.ast.QuerySyntaxException: expecting CLOSE, found '(' near line 1, column 279 cast(avg(ExamDetailModel.score) as decimal(6,2)) as avg_score,
                                              _ 好像是这个的括号问题,莫非decimal不能跟(6,2)
      

  2.   

    expecting CLOSE, found '('括号个数对不上。应该是少了一个)
    自己慢慢找吧把SQL 拷到记事本,用缩进来找
      

  3.   

    把hql转成对应的sql执行下,很容易找错误。
      

  4.   

    将as decimal(6,2)去掉  as是取别名cast(avg(ExamDetailModel.score) as decimal(6,2)) as avg_scorecast(colmun  as 别名) as 别名?sql不能这么写的吧
      

  5.   

    先直接用sql语句直接从数据库执行看看,这样容易发现错在哪……