确认
- [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。。。首先是运行时获取,其次,你们不觉得它很丑吗?