Closed jktantan closed 1 year ago
提供一个复现工程上来看看
提供一个复现工程上来看看
原工程没有办法提交上来了,有点大了,这个工程是从3.5.3.2升到3.5.4的,在3.5.3.2的时候没问题。我这几天创建一个新工程看看会不会也有这问题。
提供一个复现工程上来看看
原工程没有办法提交上来了,有点大了,这个工程是从3.5.3.2升到3.5.4的,在3.5.3.2的时候没问题。我这几天创建一个新工程看看会不会也有这问题。
那我只能把mapper层进行aop增强复现一下了,什么情况下切入点会把mapper层也切入进去
把这个版本覆盖到本地试试.
链接:https://pan.baidu.com/s/1A2pbVDU3TpjXFIDJDqpY9A 提取码:yg36
版本号是3.4.0.1?
版本号是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
存在相同的情况使用的是 saveBatch
存在相同的情况使用的是 saveBatch
用上面分享的百度云盘里面的版本试试
存在相同的情况使用的是 saveBatch
用上面分享的百度云盘里面的版本试试
使用导包正常了
版本号是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
恩,我这里试了,也没问题了。
遇到同样的问题,removeByIds(Collections.singletonList(0L))
我也是同样问题,回退3.5.3.2没问题;升级是因为正好有用到新版本的的大数据流式查询;我这边继承ServiceImpl IService 的类没有接口 是直接 @Service 的类,看到报aop错误猜测可能是因为这一块 没处理好
已发布 3.5.5-SNAPSHOT解决,不升级的话,可以根据业务情况,看能否取消对mapper层aop扫描增强解决.
我这边因为用了 @Repository 标注导致的
@LoptrX 跟这个有啥关系,不得注入ioc容器才能DI出来吗
@LoptrX 跟这个有啥关系,不得注入ioc容器才能DI出来吗
重新确认了一下,确实是 @Repository 这个注解去注册 bean 导致的
@LoptrX 跟这个有啥关系,不得注入ioc容器才能DI出来吗
重新确认了一下,确实是 @repository 这个注解去注册 bean 导致的
你意思是,使用@Mapper就没有问题了?
我的项目里面所有的 Mapper 都用了 @repository
注解,但是我发现,我有的 Mapper 会出现这个问题,有的不会,最后发现疑似是启动了逻辑删除和自动填充导致了这个AOP异常
@LoptrX 跟这个有啥关系,不得注入ioc容器才能DI出来吗
重新确认了一下,确实是 @repository 这个注解去注册 bean 导致的
你意思是,使用@Mapper就没有问题了?
具体没有过多测试,我把出问题的 mapper 去掉就好了,我现在是@MapperScan扫描注册的
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)
@nieqiurong @LoptrX @houkunlin 我这边试了一下,的确,如何用repository的话就会出问题,如果改成mapper的话就没问题。
能不能发布一个 3.5.4.1 紧急修复一下这个问题,3.5.5 的快照还需要配置仓库地址,不想再配置仓库地址了
能不能发布一个 3.5.4.1 紧急修复一下这个问题,3.5.5 的快照还需要配置仓库地址,不想再配置仓库地址了
附议
已发布3.5.4.1
我也出现了同样的问题,使用的是3.5.4版本,updateBatchById方法,3.5.3.1升级而来的,3.5.3.1没问题。 用的也是@Repository,改成了@Mapper,可以正常运行了,但不确定有没有其他潜在风险
确实是@repository得问题。改了就好了。
当前使用版本(必填,否则不予处理)
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')