Mybatis Plus使用租户过滤无效解决方案
异常内容:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: java.lang.NullPointerException
### The error may exist in file [xxxxx.xml]
### The error may involve xxxxxxx
### The error occurred while executing an update
### Cause: java.lang.NullPointerException
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at com.sun.proxy.$Proxy121.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:60)
---
### The error occurred while executing an update
### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId.
解决方法加上
@SqlParser(filter = true) 注解即可
默认mybatis plus和mysql是不支持多语句处理的;需要配置2个地方:
第一处就是数据库的链接追加上此参数:&allowMultiQueries=true
官方文档:https://dev.mysql.com/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 即可
文档:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilter
Mybatis Plus:https://mybatis.plus/guide/interceptor-tenant-line.html
常见的问题:
MybatisPlus多租户表;当配置 这个后 :com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler#doTableFilter;对应的mapper文件中的表名不能包含 ``反引号;因为

这里的代码会返回false,不会过滤 ;对应的位置:com.baomidou.mybatisplus.extension.plugins.tenant.TenantSqlParser#processInsert
Mybatis Plus使用租户过滤无效解决方案的更多相关文章
- jquery easyui textbox onblur事件,textbox blur事件无效解决方案
jquery easyui textbox onblur事件,textbox blur事件无效解决方案 >>>>>>>>>>>> ...
- td中使用overflow:hidden; 无效解决方案
td中使用overflow:hidden; 无效解决方案 >>>>>>>>>>>>>>>>>> ...
- 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案
1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...
- EntityFramework.DynamicFilters 实现软删除和租户过滤
EntityFramework.DynamicFilters 实现软删除和租户过滤
- mybatis 实现分页和过滤模糊查询
基于 mybatis 的分页和过滤查询 学习内容: 分页设计 1.分页需传递的参数 2.分页需展示的数据 3.分页需展示的数据的来源 3.1.结果总数与结果集(分页原理) 3.2.总页数.上一页和下一 ...
- text-indent无效解决方案
text-indent是用来字符缩进的. 1.text-indent所在的元素是行内元素而非块级元素.比如用在span,a等行内元素上.解决方案:在行内元素加上display:block; 或者把目标 ...
- net start mongodb 服务名无效解决方案
net start mongodb 服务名无效 或者 net start mongodb 发生错误5,拒绝访问.是因为没有用管理员权限运行cmd. 解决方案:在window中,在搜索框输入cmd后,在 ...
- 关于 Mybatis 设置懒加载无效的问题
看了 mybatis 的教程,讲到关于mybatis 的懒加载的设置: 只需要在 mybatis 的配置文件中设置两个属性就可以了: <settings> <!-- 打开延迟加载的开 ...
- 列名 'Discriminator' 无效 解决方案
{"列名 'Discriminator' 无效.\r\n列名 'Discriminator' 无效.\r\n列名 'Discriminator' 无效.\r\n列名 'FileUrl' 无 ...
随机推荐
- (反射+内省机制的运用)简单模拟spring IoC容器的操作
简单模拟spring IoC容器的操作[管理对象的创建.管理对象的依赖关系,例如属性设置] 实体类Hello package com.shan.hello; public class Hello { ...
- 把SQLAlchemy查询对象转换成字典
1-假设查出来的为单个对象 1-1 在model.py中为模型对象添加字典转换函数: from exts import db class User(db.Model): __tablename__ = ...
- 移动BI应该怎么规划?每一个数据产品经理必看
在移动化.大数据浪潮的今天,基于数据做决策应该是每一家公司的标配:每家公司都有专门负责数据的人,也都应该有一个BI部门. 而移动BI,基于手机端随时随地进行数据查询和分析--更是BI中不可或缺的一部分 ...
- BI开创者Tableau“出走中国”,中国BI用户该何去何从?
11月,Tableau在发给客户的邮件中透露将停止中国的直销业务,加入阿里的合作体系.消息来的如此突然,Tableau的同仁.合作伙伴.客户.用户.爱好者,甚至友商,无一不感到震惊和担忧. 在我们数据 ...
- 微服务从代码到k8s部署应有尽有系列(九、事务精讲)
我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...
- MyEclipse 启动tomcat本地服务,debug模式,代码一直不同步
今天写代码遇到一个问题,上午还能正常运行的代码,在eclipse中显示正常,但在游览器中就出现了差异,在网上找了很多方法: 1.add and remove项目,清理tomcat部署目录下的项目,清理 ...
- QT:Qt Creator快捷键与使用技巧
功能 快捷键 解释 Switch Header/Source F4 在同名.h与.cpp文件间切换 Follow Symbol Under Cursor F2 跟踪光标下的变量或函数 变量:跟踪到变量 ...
- Vue 常用命令
创建全局脚手架 npm install -g @vue/cli-init # `vue init` 的运行效果将会跟 `vue-cli@2.x` 相同 vue init webpack my-proj ...
- MySQL — DCL语言
全称 Data Control Language.数据控制语言,用来创建数据库用户.控制数据库的访问权限. 1.用户管理 1.1.查询用户 select * from user; 1.2.创建用户 - ...
- 矩池云上cifar10使用说明
矩池云将 keras 预训练模型保存目录为 /public/keras_pretrained_model/ 使用方法: 先执行命令,创建目录 mkdir -p ~/.keras/models/ 然后将 ...