Closed MynLJL closed 7 months ago
提供sql示例来修复一下.
用 3.5.6-SNAPSHOT 试试
好的,感谢!
---原始邮件--- 发件人: @.> 发送时间: 2024年4月7日(周日) 中午1:15 收件人: @.>; 抄送: @.**@.>; 主题: Re: [baomidou/mybatis-plus] IllegalSQLInnerInterceptor 处理Expression未考虑Parenthesis (Issue #5842)
用 3.5.6-SNAPSHOT 试试
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
当前使用版本(必填,否则不予处理)
3.4.0 之后的版本都有此问题
该问题是如何引起的?(确定最新版也有问题再提!!!)
使用QueryWrapper 构造的sql where 部分被()包裹,此时net.sf.jsqlparser.statement.update.Update#getWhere 获取的Expression真实类型为Parenthesis,然而方法com.baomidou.mybatisplus.extension.plugins.inner.IllegalSQLInnerInterceptor#validExpression并未考虑此场景,导致使用QueryWrapper时(手写sql如果也有括号应该也有此问题),拦截器无法使用
重现步骤(如果有就写完整)
1.引入3.4.0 2.配置IllegalSQLInnerInterceptor 3.使用QueryWrapper查数据库,打印出的sql中 where部分有括号
报错信息