当前使用版本(必填,否则不予处理)

Mybatis-plus 3.5.4 Springboot 3.1.5

该问题是如何引起的?(确定最新版也有问题再提!!!)

使用任何一个batch的方法,比如:removeBatchById等,就会出现错误,这种情况在3.5.4之前的版本不存在。

重现步骤(如果有就写完整)

报错信息

class org.springframework.aop.framework.JdkDynamicAopProxy cannot be cast to class com.baomidou.mybatisplus.core.override.MybatisMapperProxy (org.springframework.aop.framework.JdkDynamicAopProxy and com.baomidou.mybatisplus.core.override.MybatisMapperProxy are in unnamed module of loader 'app')

Comment From: nieqiurong

提供一个复现工程上来看看

Comment From: jktantan

提供一个复现工程上来看看

原工程没有办法提交上来了,有点大了,这个工程是从3.5.3.2升到3.5.4的,在3.5.3.2的时候没问题。我这几天创建一个新工程看看会不会也有这问题。

Comment From: nieqiurong

提供一个复现工程上来看看

原工程没有办法提交上来了,有点大了,这个工程是从3.5.3.2升到3.5.4的,在3.5.3.2的时候没问题。我这几天创建一个新工程看看会不会也有这问题。

那我只能把mapper层进行aop增强复现一下了,什么情况下切入点会把mapper层也切入进去

Comment From: nieqiurong

把这个版本覆盖到本地试试.

链接:https://pan.baidu.com/s/1A2pbVDU3TpjXFIDJDqpY9A 提取码:yg36

Comment From: jktantan

版本号是3.4.0.1?

Comment From: nieqiurong

版本号是3.4.0.1? | | 胡宇峰 | | @. | ---- 回复的原邮件 ---- | 发件人 | @.> | | 发送日期 | 2023年10月25日 15:10 | | 收件人 | @.> | | 抄送人 | @.> , @.> | | 主题 | Re: [baomidou/mybatis-plus] Mybatis-plus 3.5.4 的AOP问题 (Issue #5741) | 把这个版本覆盖到本地试试. 链接:https://pan.baidu.com/s/1A2pbVDU3TpjXFIDJDqpY9A 提取码:yg36 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.>

看错文件了,这个才对,3.5.4 链接:https://pan.baidu.com/s/12r4mfbq_0fc5E7x0962YJA 提取码:1fab

Comment From: LoptrX

存在相同的情况使用的是 saveBatch

Comment From: nieqiurong

存在相同的情况使用的是 saveBatch

用上面分享的百度云盘里面的版本试试

Comment From: LoptrX

存在相同的情况使用的是 saveBatch

用上面分享的百度云盘里面的版本试试

使用导包正常了

Comment From: jktantan

版本号是3.4.0.1? | | 胡宇峰 | | @. | ---- 回复的原邮件 ---- | 发件人 | _*@.> | | 发送日期 | 2023年10月25日 15:10 | | 收件人 | _@_.> | | 抄送人 | @.> , _@_.> | | 主题 | Re: [baomidou/mybatis-plus] Mybatis-plus 3.5.4 的AOP问题 (Issue #5741) | 把这个版本覆盖到本地试试. 链接:https://pan.baidu.com/s/1A2pbVDU3TpjXFIDJDqpY9A 提取码:yg36 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @_.***>

看错文件了,这个才对,3.5.4 链接:https://pan.baidu.com/s/12r4mfbq_0fc5E7x0962YJA 提取码:1fab

恩,我这里试了,也没问题了。

Comment From: houkunlin

遇到同样的问题,removeByIds(Collections.singletonList(0L)) MyBatis-Plus Mybatis-plus 3.5.4 的AOP问题

Comment From: 203579397

我也是同样问题,回退3.5.3.2没问题;升级是因为正好有用到新版本的的大数据流式查询;我这边继承ServiceImpl IService 的类没有接口 是直接 @Service 的类,看到报aop错误猜测可能是因为这一块 没处理好

Comment From: nieqiurong

已发布 3.5.5-SNAPSHOT解决,不升级的话,可以根据业务情况,看能否取消对mapper层aop扫描增强解决.

Comment From: LoptrX

我这边因为用了 @Repository 标注导致的

Comment From: 203579397

@LoptrX 跟这个有啥关系,不得注入ioc容器才能DI出来吗

Comment From: LoptrX

@LoptrX 跟这个有啥关系,不得注入ioc容器才能DI出来吗

重新确认了一下,确实是 @Repository 这个注解去注册 bean 导致的

Comment From: jktantan

@LoptrX 跟这个有啥关系,不得注入ioc容器才能DI出来吗

重新确认了一下,确实是 @repository 这个注解去注册 bean 导致的

你意思是,使用@Mapper就没有问题了?

Comment From: houkunlin

我的项目里面所有的 Mapper 都用了 @repository 注解,但是我发现,我有的 Mapper 会出现这个问题,有的不会,最后发现疑似是启动了逻辑删除和自动填充导致了这个AOP异常

Comment From: LoptrX

@LoptrX 跟这个有啥关系,不得注入ioc容器才能DI出来吗

重新确认了一下,确实是 @repository 这个注解去注册 bean 导致的

你意思是,使用@Mapper就没有问题了?

具体没有过多测试,我把出问题的 mapper 去掉就好了,我现在是@MapperScan扫描注册的

Comment From: houkunlin

java.lang.ClassCastException: class org.springframework.aop.framework.JdkDynamicAopProxy cannot be cast to class com.baomidou.mybatisplus.core.override.MybatisMapperProxy (org.springframework.aop.framework.JdkDynamicAopProxy and com.baomidou.mybatisplus.core.override.MybatisMapperProxy are in unnamed module of loader 'app')
    at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.getSqlSessionFactory(ServiceImpl.java:90)
    at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.executeBatch(ServiceImpl.java:271)
    at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.removeBatchByIds(ServiceImpl.java:335)
    at com.baomidou.mybatisplus.extension.service.IService.removeBatchByIds(IService.java:202)
    at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.removeByIds(ServiceImpl.java:304)

Comment From: jktantan

@nieqiurong @LoptrX @houkunlin 我这边试了一下,的确,如何用repository的话就会出问题,如果改成mapper的话就没问题。

Comment From: houkunlin

能不能发布一个 3.5.4.1 紧急修复一下这个问题,3.5.5 的快照还需要配置仓库地址,不想再配置仓库地址了

Comment From: 203579397

能不能发布一个 3.5.4.1 紧急修复一下这个问题,3.5.5 的快照还需要配置仓库地址,不想再配置仓库地址了

附议

Comment From: nieqiurong

已发布3.5.4.1

Comment From: xieshaoping

MyBatis-Plus Mybatis-plus 3.5.4 的AOP问题 我也出现了同样的问题,使用的是3.5.4版本,updateBatchById方法,3.5.3.1升级而来的,3.5.3.1没问题。 用的也是@Repository,改成了@Mapper,可以正常运行了,但不确定有没有其他潜在风险

Comment From: Nanchengjiumeng123

确实是@repository得问题。改了就好了。