如何优雅的使用lambdaQuery实现allEq方法呢?
List<User> users = this.userDao.selectList(Wrappers.<User>query() .allEq(true, (key, value) -> key.equals("name"), paramMap, true));
使用lambda怎么实现如上的allEq方法呢?
List<User> users = this.userDao.selectList(Wrappers.<User>query() .allEq(true, (key, value) -> key.equals("name"), paramMap, true));
使用lambda怎么实现如上的allEq方法呢?
2019-06-23
以前我也没用过lambdaQuery调用带过滤参数的allEq,不带过滤参数的那种挺优雅的。类似上面的需求,我做了一种折中实现方式,不太优雅。给你列出代码看看,有时间我再研究研究,如果有答案,我会答复你。
User user = new User();
user.setAge(25);
user.setRealName("王");
Map<SFunction<User, ?>, Object> params = new HashMap<>();
//防误写
params.put(User::getRealName, user.getRealName());
params.put(User::getAge, user.getAge());
List<User> userList = userMapper.selectList(Wrappers.<User>lambdaQuery().allEq(true,
(k, v) -> k.apply(user).equals(user.getRealName()), params, true));
举报