refeccd
refeccd
我第一次截图是 mapper 的,确实按你这么说也没错,对于直接调用 mapper 层来说是一致的 可是现在的应用程序有多少是直接调用 mapper 的呢,一般都会对外提供一个 service 调用 mapper 问题就出在 service 层,在 removeById(id) 的时候多了一个判断(如果表开启了逻辑删除,并且有字段是需要 updateFill) 当条件满足时,会自动将 removeById(id)的调用改为removeById(entity) removeById(entity)经过 mapper时,发现传入的不是简单类型,就会进行填充,同时也印证了你的回复https://github.com/baomidou/mybatis-plus/issues/4781#issuecomment-1229400953 最终导致了在 service 层行为的不一致
请问这个 fix 什么时候合并?
其实针对这类的问题,我也尝试改成 `CustomQueryWrapper` 这种形式。 https://github.com/baomidou/mybatis-plus/blob/b72273a9db569e607279a4f14288bafd51fbb6da/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/query/LambdaQueryChainWrapper.java#L35 但是由于这个继承的限制,导致`LambdaQueryWrapper`里所有链式方法的返回值都是typedThis https://github.com/baomidou/mybatis-plus/blob/b72273a9db569e607279a4f14288bafd51fbb6da/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/AbstractChainWrapper.java#L46 设想,如果这个 typedThis 可以更灵活一点,那么完全可以在 https://github.com/baomidou/mybatis-plus/blob/b72273a9db569e607279a4f14288bafd51fbb6da/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/IService.java#L605 这里继承一下,返回自定义的`CustomQueryWrapper`,这样mp只需要提供常用的方法即可,剩下的部分可以自由扩展。 但是苦于技术太菜,所以一直没想到什么方式,不知道mp团队有没有这方面的想法? @nieqiurong