//查询(模糊)
@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类,然后在判断属性值不为空时,才将其添加到查询条件中。
这样,即使传入的属性值缺少一个或多个属性,也不会引发错误。
【相关推荐】