查询数据表报错Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token:

Blade 未结 2 2545

商业版Bladex.

把之前springblade开源版的业务模块迁移过来运行报错。

实体对象DictionaryFunction 没有继承BaseEntity.

()
DictionaryFunction Serializable {

   = (type= IdType.)
   Long


Mapper继承的 mybatisplus的 basemapper

DictionaryFunctionMapper BaseMapper<DictionaryFunction> {

}

开源版运行没问题,商业版运行报错如下。


补充背景,使用的多数据源:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>3.2.0</version>
</dependency>

blade-common模块开启了多数据源配置。(参考帖子修改的,否则会提示找不到url)




```linux

Caused by: org.apache.ibatis.exceptions.PersistenceException: 

### Error querying database.  Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT  id,function,name,template,type_id,threshold,compute_way,status,create_date,modify_date,scan_rate,is_set_coe  FROM dictionary_function 

 

 WHERE (id IN (?,?,?,?,?,?))

### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT  id,function,name,template,type_id,threshold,compute_way,status,create_date,modify_date,scan_rate,is_set_coe  FROM dictionary_function 

 

 WHERE (id IN (?,?,?,?,?,?))

at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)

... 111 common frames omitted

Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: SELECT  id,function,name,template,type_id,threshold,compute_way,status,create_date,modify_date,scan_rate,is_set_coe  FROM dictionary_function 

 

 WHERE (id IN (?,?,?,?,?,?))

at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)

at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:35)

at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.beforeQuery(TenantLineInnerInterceptor.java:69)

at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:61)

at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)

at com.sun.proxy.$Proxy248.query(Unknown Source)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)

... 117 common frames omitted

Caused by: net.sf.jsqlparser.JSQLParserException: null

at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:65)

at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:40)

at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:32)

... 122 common frames omitted

Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "function" "FUNCTION"

    at line 1, column 12.


Was expecting one of:


    "!"

    "("

    "*"

```



2条回答
  • mybatisplus版本不一致,删除本地仓库,刷新下工程。

    作者追问:2020-11-12 16:13

    我把maven下org.sprinigblade 的所有包都删除了。重新clean install还是一样报错。

    补充了下背景情况,开启了多数据源配置。使用的bladex 2.7.0 Release版本。

    作者追问:2020-11-13 10:31

    不知道是否跟多租户有关系,这个新增业务在开源版没有特殊设置过。商业版里需要设置租户排除么?

    0 讨论(0)
  • 2020-11-17 09:52

    已解决:

    数据表使用了 function 字段名导致的报错,换个字段名就可以了。
    但是开源版2.7没有这个问题。

    还没有深入研究为何商业版sql解析就不行了。

    0 讨论(0)
提交回复