org.hibernate.exception.SQLGrammarException: could not extract ResultSet解决方案

使用SSH框架连接数据库查询,
详细报错如下:

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
		at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
		at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1542)

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet的报错是由查询语句Query queryObject = getSession().createQuery(queryString);造成的,原因总体来说就是数据库查询失败。
查询失败基本都是由于HQL语句转为SQL语句出错引起的,下面列出几种可能的原因:

  1. 数据库连接设置的dialect不对。
  2. HQL语句写错了。
  3. 用到的实体类写错了
  4. 用到的实体类映射文件hbm.xml写错了。

为了找到错误原因,我们可以在控制台检查HQL语句和SQL语句。
不会控制台显示HQL语句和SQL语句的小伙伴看这里:SSH框架控制台输出HQL语句和SQL语句的方法

红框内的是HQL语句,红框后面select开始的是对应的SQL语句。
在这里插入图片描述
检查SQL语句时,如果觉得SQL语句太长太复杂,可以把它放到数据库里执行一下,可以很快得到答案。
在这里插入图片描述
这样做下来,想来应该对这个bug有些头绪了吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值