问答详情
源自:3-9 AllEq用法

如何优雅的使用lambdaQuery实现allEq方法呢?

List<User> users = this.userDao.selectList(Wrappers.<User>query()
        .allEq(true, (key, value) -> key.equals("name"), paramMap, true));

使用lambda怎么实现如上的allEq方法呢?

提问者:秋田君 2019-06-23 03:09

个回答

  • 老猿
    2019-06-23 12:04:59

           以前我也没用过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));