unexpected token: 9900

本文分析了一个关于Spring框架中HibernateQueryException的具体案例,错误源于HQL查询语句中字符串匹配条件缺少必要的单引号,导致语法错误。文章详细介绍了如何通过debug定位问题,并给出正确的HQL语句写法。

Z1. 错误如下

errDetail:org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 9900 near line 1, column 67 [from com.xxx.xxxtable where xxx=xxx and xxx>x order by xx desc];

nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 9900 near line 1, column 67 [from com.xxx where xxx=xxx and xxx>x order by xxx desc] errLog:unexpected token: 9900 near line 1, column 67 [from com.xxx where xxx=xxx and  xxx>x order by xxx desc]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 9900 near line 1, column 67 [from com.xxx where xxx=xxx and xxx>0 order by xxx desc]>>>>>>>org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 9900 near lin

W2.debug 发现程序中的sql语句写错了

        List<Xxx> a= this.pfind("from Xxx where xx= " + xxx1 + " and xxa>0 order by xxb  desc");

其中xx对应数据库中的varchar2类型的字段,xxx1为String类型的变量,观察发现

数据库中的正确语句应该是:

select  *  from 表名 where xx= ‘xxx1的值’   and xxa>0 order by xxb  desc"

比较java文件中的sql与正确的发现少了一对单引号

错误的:"from Xxx where xx= " + xxx1 + " and xxa>0 order by xxb  desc"

正确的:"from Xxx where xx= ’" + xxx1 + "‘ and xxa>0 order by xxb  desc"

T3.解决办法

添加一对单引号

总结:此类错误一般是hql语句错误。

还有一篇文章也提到了这个问题,感觉不错就拿了它的网址

网址:https://blog.youkuaiyun.com/s_monster_/article/details/78885730

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

济南-赵文涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值