确认
当前程序版本
3.5.7
问题描述
我的表字段中有一个字段为 output,在使用BaseMapper.selectPage()方法时,会打印错误日志如下。 ` 24-09-14.15:47:48.940 [http-nio-8080-exec-4] WARN PaginationInnerInterceptor - optimize this sql to a count sql has exception, sql:"SELECT output FROM tb_sys_log WHERE deleted=0 ORDER BY created_time DESC", exception: java.util.concurrent.ExecutionException: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "," "," at line 1, column 60.
Was expecting one of:
"."
"::"
"["
"^"
<EOF>
<ST_SEMICOLON>
问题原因是output字段可能是jsqlparser的关键字,在selectPage()中,调用的JsqlParserGlobal.parse(sql)方法,会报错,到时sql优化失败。 建议,mybatis-plus自动生成的select语句中,将所有的字段名,转译一下。 如 select `output` from tb_sys_log where `deleted` = 0
详细堆栈日志
24-09-14.15:47:48.940 [http-nio-8080-exec-4] WARN PaginationInnerInterceptor - optimize this sql to a count sql has exception, sql:"SELECT output FROM tb_sys_log WHERE deleted=0 ORDER BY created_time DESC", exception:
java.util.concurrent.ExecutionException: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "," ","
at line 1, column 60.
Was expecting one of:
"."
"::"
"["
"^"
<EOF>
<ST_SEMICOLON>
Comment From: miemieYaho
不会转义