baomidou / mybatis-plus

An powerful enhanced toolkit of MyBatis for simplify development
https://baomidou.com
Apache License 2.0
16.3k stars 4.3k forks source link

使用DataPermissionInterceptor插件时,BaseMapper自带的CRUD报错,如selectById等会报:未找到对应的mapper方法 #6127

Closed pubulic123 closed 4 months ago

pubulic123 commented 4 months ago

当前使用版本 3.5.1 当前环境信息 Java8 + Mysql8.0

描述bug现象 使用了数据权限插件,BaseMapper自带的CRUD方法报错,但如果使用自定义Mapper方法则一切正常 提示报错的位置是DataPermissionInterceptor的beforeQuery方法

提供问题复现步骤 调用BaseMapper的CRUD方法

提供完整堆栈日志(可选) org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

Error querying database. Cause: java.lang.RuntimeException: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: 未找到对应的mapper方法

Cause: java.lang.RuntimeException: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: 未找到对应的mapper方法

pubulic123 commented 4 months ago

是我自行配置的的原因,我自定义了实现DataPermissionHandler,在里面处理mappedStatementIdid的时候没有考虑到BaseMapper自带的CRUD接口的处理逻辑