由【net.sf.jsqlparser.JSQLParserException】可看出是因为组装的sql语句解析过程中抛出"非RuntimeException异常",异常被程序捕抓处理且未出现新异常,异常后的代码继续执行,所以不影响一个完整Retrieve操作。而一些"RuntimeException异常",例如:空指针(NullPointerException)、数组越界(IndexOutOfBoundsException)、类型转换(ClassCastException)等会被JVM自动处理,会在console控制台捕抓并打印异常日志。
虽然后台抛出JSQLparseException,但是不影响sql查询结果。原因是count函数中嵌套了if函数导致抛异常,不使用“count(if(exprt))”嵌套函数就不会出现异常;
产生异常的原因可能是在后台查询的sql语句中才用了一些sql可能不支持的函数:例如 IF(isnull(warning_id), 0 , 1)等,我出现这个这个异常就是sql使用了该if判断条件导致的。改正后不再抛该异常。
或者升级分页的插件(pagehelper)版本也能得到解决