确认

  • [X] 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
  • [X] 我已经在 issue 中搜索过, 确认问题没有被提出过
  • [X] 我已经修改标题, 将标题中的 描述 替换为遇到的问题

功能改进

// 假设有一个 QueryWrapper 对象,设置删除条件为 name = 'John Doe'
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John Doe");
boolean result = userService.remove(queryWrapper); // 调用 remove 方法

以上代码在修改name字段名或者删除name字段时,IDE均不会给出提示,容易产生问题,建议参照官网Mybatis生成方式,生成各模型类的Wrapper,内容如下: 比如当前模型类:

public class User {
   private long id;
   private String name;
   ...
}

需要生成的对应的Wrapper类:

public class UserWrapper {

   private QueryWrapper<User> wrapper;

   public UserWrapper nameEq(String name) {
        wrapper.eq("name", name);
        return this;
   }

   // ... name字段的其他比较、like等方法
   // ... 其他字段的方法...

}

这样,在调用时,可以向下边一样:

UserWrapper queryWrapper = new UserWrapper();
queryWrapper.nameEq("John Doe");
boolean result = userService.remove(queryWrapper); // 调用 remove 方法

起到的效果是:当name字段修改或者删除后,可以在编译级别即IDE中很容易看到错误。 望采纳!

参考资料

No response

Comment From: ruanych

可以用 LambdaQueryWrapper

Comment From: totoro52

LambdaQueryWrapper不就满足你需要了。。

Comment From: live-in-a-dream

LambdaQueryWrapper 是运行时,楼主说的时编译时,我觉得楼主说的不错。但是相应的还要楼主说的开发量多点

Comment From: missfmaster

LambdaQueryWrapper。。。首先是运行时获取,其次,你们不觉得它很丑吗?