gpt4 book ai didi

java - 通过示例在 MongoRepository 查询中包含 Null 检查

转载 作者:可可西里 更新时间:2023-11-01 09:16:25 24 4
gpt4 key购买 nike

我正在尝试使用以下方法使用 MongoRepository 从集合中查找所有符合特定搜索条件的内容:

<S extends T> Page<S> findAll(Example<S> example, Pageable pageable);

为此,我正在为搜索中包含的所有字段构建一个 ExampleMatcher。像这样:

 private ExampleMatcher buildMatcher(FormSearchParameters formSearchParameters) {

ExampleMatcher exampleMatcher = ExampleMatcher.matching()

.withIgnorePaths("f1", "f2", "f3", "f4" , "f5");

if (!StringUtils.isEmpty(formSearchParameters.getName())) {
exampleMatcher = exampleMatcher.withMatcher("name", match -> match.regex());
}

if (!StringUtils.isEmpty(formSearchParameters.getFoo())) {
exampleMatcher = exampleMatcher.withMatcher("foo", matcher -> matcher.exact().ignoreCase());
}

if (null != formSearchParameters.getFilter()) {
exampleMatcher = exampleMatcher.withMatcher("filter", matcher -> matcher.exact());
}
else {
exampleMatcher = exampleMatcher.withIgnorePaths("filter");
}

return exampleMatcher.withIncludeNullValues();
}

但是,我需要在字段(例如 nullField)为空的位置添加最后一次检查。我似乎无法在文档中找到有关如何解决此问题的任何信息。

我尝试在提供的示例模型中添加以下内容,其中 nullField 为 null,但这似乎被忽略了。

.withMatcher("nullField", matcher -> matcher.exact())

非常感谢

最佳答案

根据 documentation Null 处理设置的范围是 ExampleMatcher(而不是属性路径)。所以,长话短说,你不能。

关于java - 通过示例在 MongoRepository 查询中包含 Null 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40527289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com