mybatis-plus报错net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: “:” “:”
问题原因
只要你的sql语句从idea控制台拿出来在数据库中可以正常运行但是在项目中报错是因为mybatis-plus框架中使用到了多租户功能,Mybatis-plus 会 进行数据权限的过滤,但是有些接口,其实并不想被多租户过滤,所以要对该条sql,进行租户放行。关于这块Mybatis-plus官网说明了 SqlParserFilter sql 解析过滤器,当然对这部分感兴趣的小伙伴们,可以去Mybatis-plus官网查看相关源码
说明:多租户:多个用户间使用同一套程序,但每个用户之间实现数据隔离
解决办法
参考Mybatis-plus官网,在Mapper层接口方法上 加入注解
3.3.1版本以上解决:
mapper文件上面加上这个注解
@SqlParser(filter=true)
以下版本在要yml中加入以下:
mybatis-plus:
global-config:
sql-parser-cache: true
该博客主要介绍了在使用Mybatis-Plus时遇到的SQL解析错误,问题源于多租户功能导致的数据过滤。解决方案是在Mapper接口方法上添加注解或在配置文件中设置,以防止不需要过滤的SQL受到影响。多租户是指多个用户共享同一应用但数据隔离的技术。
3626

被折叠的 条评论
为什么被折叠?



