如何单个模糊查询,而且使用最小的代码


 //查询(模糊)
    @PostMapping("/ObscurePeople")
    public List<People> ObscurePeople(@RequestBody People people) {
        LambdaQueryWrapper<People> lambdaQueryWrapper = new LambdaQueryWrapper();
        lambdaQueryWrapper.like(People::getName, people.getName());
        lambdaQueryWrapper.like(People::getSex, people.getSex());
        return peopleService.list(lambdaQueryWrapper);
    }

如何使用最少的代码让它运行,我发现如果json传输的值里如果少了任意一个属性它都将查询不出来
比如我输入了

{
        "name":"珑珑",
        "sex":"男"
    }

那么它将查询成功
但是要是少了一个比如我只给了一个sex:男那么它会自动的传输一个name:NUll

if(判断不为空){
lambdaQueryWrapper.like(People::getName, people.getName());
}
if(判断不为空){
lambdaQueryWrapper.like(People::getSex, people.getSex());
}

提示一下,判断条件能搞定吧

【以下回答由 GPT 生成】

首先,我们需要对传入的JSON对象进行判空操作。如果某个属性值为null,我们将不会将其添加到查询条件中。

在Java中,我们可以使用org.apache.commons.lang3.StringUtils类的isNotBlank()方法来判断字符串是否为空。

下面是修改后的代码:

@PostMapping("/ObscurePeople")
public List<People> ObscurePeople(@RequestBody People people) {
    LambdaQueryWrapper<People> lambdaQueryWrapper = new LambdaQueryWrapper<>();

    if (StringUtils.isNotBlank(people.getName())) {
        lambdaQueryWrapper.like(People::getName, people.getName());
    }

    if (StringUtils.isNotBlank(people.getSex())) {
        lambdaQueryWrapper.like(People::getSex, people.getSex());
    }

    return peopleService.list(lambdaQueryWrapper);
}

在上面的代码中,我们首先导入StringUtils类,然后在判断属性值不为空时,才将其添加到查询条件中。

这样,即使传入的属性值缺少一个或多个属性,也不会引发错误。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^