在使用 MyBatis Plus 进行 SQL 插入操作时,可能会遇到以下错误:

Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: insert into APS_IRON_PRO_ASSEMBLY_CONFIG (assemblyType,processAssemblyJson,ironType,yokeSideStructure,wiotCode,apsDeviceName,createUser,singlePillarProcessType,createTime,lastEditUser,lastTime,isDeleted,baseCalType,pillarCode,scriptId,efficiencyCalType)
        output inserted.id
        values
          
            (?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)
         , 
            (?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)
	at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)
	at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)
	at com.pttx.aps.framework.interceptor.PlusDataPermissionInterceptor.beforeQuery(PlusDataPermissionInterceptor.java:49)
	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)
	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
	at com.sun.proxy.$Proxy277.query(Unknown Source)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
	... 122 common frames omitted
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: 'output' <S_IDENTIFIER>
    at line 2, column 9.

Was expecting one of:

    '(' 
    'SET' 
    'VALUES' 
    'WITH' 
    <K_SELECT>

该错误是因为在 SQL 语句中使用了 SQL Server 特有的 'output' 关键字,而 MyBatis Plus 没有对其进行处理导致的。

解决方式有两种:

  1. 升级 MyBatis Plus 版本到 3.4.0 以上,该版本已经对 'output' 关键字进行了处理。

  2. 手动处理 SQL 语句,在 'output' 关键字前添加一个分号,即在 SQL 语句中添加一个分号,如下所示:

insert into APS_IRON_PRO_ASSEMBLY_CONFIG (assemblyType,processAssemblyJson,ironType,yokeSideStructure,wiotCode,apsDeviceName,createUser,singlePillarProcessType,createTime,lastEditUser,lastTime,isDeleted,baseCalType,pillarCode,scriptId,efficiencyCalType)
;output inserted.id
values
    (?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)
, 
    (?, ?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)

以上是解决该错误的两种方式,可以根据实际情况选择其中一种进行处理。

MyBatis Plus: 解决“Failed to process, Error SQL: insert into ... output inserted.id”错误

原文地址: https://www.cveoy.top/t/topic/oFct 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录