Java 如何解决SQLGrammer异常?

Java 如何解决SQLGrammer异常?,java,mysql,hibernate,Java,Mysql,Hibernate,我正在尝试使用hibernate执行sql查询。如果在Mysql查询浏览器中执行,我会得到结果,但当我作为hibernate查询的一部分执行时,它会给出SQLGrammer异常,然后显示它无法执行查询。下面是引发异常的查询代码 StringBuffer queryBuffer = new StringBuffer(); queryBuffer.append("select region, "); queryBuffer.append("ABS( DATEDIFF(:date,en

我正在尝试使用hibernate执行sql查询。如果在Mysql查询浏览器中执行,我会得到结果,但当我作为hibernate查询的一部分执行时,它会给出SQLGrammer异常,然后显示它无法执行查询。下面是引发异常的查询代码

StringBuffer queryBuffer = new StringBuffer();
  queryBuffer.append("select region, ");
      queryBuffer.append("ABS( DATEDIFF(:date,endDate) ) as resultDiff ");
      queryBuffer.append("from location  where ");
      queryBuffer.append("employeeId = :id ");
      queryBuffer.append("ORDER BY resultDiff");
      //queryBuffer.append("LIMIT 1");
      arrParamNames = new String[] {"date","id"};
      arrParamValues = new Object[] {date,id};

      lstEmployeedomains=hibernateTemplate.findByNamedParam(queryBuffer.toString(), 
              arrParamNames, arrParamValues);
下面是堆栈跟踪

org.springframework.dao.InvalidDataAccessResourceUsageException:可能 不执行查询;SQL[选择域0\u.Region作为列0\u 0\u, abs(datediff(?,domain0.EndDate))作为来自位置domain0的列1\u 0_ 其中,domain0_u0.EmployeeId=?按结果排序ff]

嵌套异常为org.hibernate.exception.sqlgrammareexception:无法执行查询


from location domain0\uu0
这是什么意思?我想,您不能在
order by
子句中使用别名,请检查。首先,在日志中查看SQL查询访问数据库的内容。show your hibernate.cfg.xml当然有问题,谢谢Sridhar。引发异常的是order by子句……)