如何優雅的使用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
舉報
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));