baomidou-mybatis将大量方法封装,在自己的service类中的方法中利用DynamicDataSource切换数据源却失败了,原因是updateBatchById方法调用了updateById
代码位置
org.apache.ibatis.executor.BatchExecutordoUpdate方法中利用
Connection connection = getConnection(ms.getStatementLog());进行数据源获取
调试发现
ms.getStatementLog()调用DAO下的updateById,而我们覆盖了updateBatchById切换数据源是无效的,需要重新覆盖updateById进行数据源切换。
而Spring里interface写注解是没有用的,最后发现自己写一个方法,调用super.updateBatchById即可
探讨使用baomidou-mybatis时遇到的问题:在service层通过DynamicDataSource切换数据源,但在updateBatchById方法中失效。原因是该方法底层调用了未覆盖数据源切换的updateById方法。解决方案为直接覆盖updateById并手动切换数据源。
918

被折叠的 条评论
为什么被折叠?



