一、问题描述
遇到了一个报错
com.github.pagehelper.PageException: 处理排序失败: net.sf.jsqlparser.JSQLParserException
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "is" "IS"
at line 28, column 21.
Was expecting one of:
"."
";"
"AND"
"CONNECT"
"EXCEPT"
"FOR"
"GROUP"
"HAVING"
"INTERSECT"
"MINUS"
"ORDER"
"START"
"UNION"
<EOF>
通过报错,我们简单可以看出是
pagehelper在处理sql语句时,sql中包含了不支持的语句
二、问题排查
- 先看java代码
代码里确实用了pagehelper的排序
Page page = PageHelper.startPage(pageNum, pageSize, orderString);
- 再看sql
因为sql里面使用了
is,pagehelper排序不支持这个关键字,所以就报错了
where is_hide is true
三、问题解决
对于我这个问题,把is换成=就行了 还有别的情况,使用了一些关键字,不在下面之中,也会报错
Was expecting one of:
"."
";"
"AND"
"CONNECT"
"EXCEPT"
"FOR"
"GROUP"
"HAVING"
"INTERSECT"
"MINUS"
"ORDER"
"START"
"UNION"
<EOF>
报错里面都有提示,可以根据提示判断具体哪个关键词有问题
Encountered unexpected token: "is" "IS"