Java 如何解决SQLGrammer异常?
我正在尝试使用hibernate执行sql查询。如果在Mysql查询浏览器中执行,我会得到结果,但当我作为hibernate查询的一部分执行时,它会给出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
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子句……)