MybatisPlus使⽤租户过滤⽆效解决⽅案
异常内容:
### Error updating database. Cause: java.lang.NullPointerException
### The error may exist in file [l]
### The error may involve xxxxxxx
### The error occurred while executing an update
### Cause: java.lang.NullPointerException
mysql操作官方文档batis.anslateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
batis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at com.sun.proxy.$Proxy121.insert(Unknown Source)
batis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271)
at ute(MybatisMapperMethod.java:60)
---
### The error occurred while executing an update
### Cause: ptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId.
解决⽅法加上
@SqlParser(filter = true) 注解即可
默认mybatis plus和mysql是不⽀持多语句处理的;需要配置2个地⽅:
第⼀处就是数据库的链接追加上此参数:&allowMultiQueries=true
官⽅⽂档:sql/doc/connector-j/8.0/en/connector-j-connp-props-security.html#cj-conn-prop_allowMultiQueries
第⼆处就是数据源:我使⽤的是Druid数据源;那么需要配置 spring.datasource.dynamic.druid.wall.multi-statement-allow=true 即可⽂档:github/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilter
Mybatis Plus:mybatis.plus/guide/interceptor-tenant-line.html
常见的问题:
MybatisPlus多租户表;当配置这个后:ant.TenantHandler#doTableFilter;对应的mapper⽂件中的表名不能包含 ``反引号;因为
这⾥的代码会返回false,不会过滤;对应的位置:ant.TenantSqlParser#processInsert
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论