使用PageHelper.startPage时 net.sf.jsqlparser.parser.ParseException: Encountered 解决方案
对比代码:
原来的写法:
PageHelper.startPage(page, size, order);
List<xxx> list = xxxMapperExt.selectxxx(id,type);
修改之后:
PageHelper.startPage(page, size);
List<xxx> list = xxxMapperExt.selectxxx(id,type, order);
过程分析
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " "IF" "IF "" at line 6, column 20.
Was expecting one of:
"NULL" ...
"CASE" ...
"INTERVAL" ...
"GROUP_CONCAT" ...
<K_TIME_KEY_EXPR> ...
<S_CHAR_LITERAL> ...
"{d" ...
"{t" ...
"{ts" ...
上面报错会输出,但是不会影响程序的正常执行,sql结果正常;
原因分析
在使用的Page Helper分页的时候,由于sql使用了强制索引;同时使用了PageHelper的的排序。导致了抛出了上面异常;
解决方案:
将排序字段作为参数写入到sql;不使用PageHelper的orderBy方法;解决问题
PageHelper.startPage(page, size);
List<xxx> list = xxxMapperExt.selectxxx(id,type, order);