java - ExampleMatcher 配置用于查找具有空值的多个字段
问题描述
尝试使用 ExampleMatcher 查询查找多个字段。在下面的课程中,我们有 4 个字段:
public class contact {
private String name;
private long phoneNumber; //primary
private String email;
private String organization;
}
例如,现在我想使用名称和电子邮件字段进行搜索,而其他字段请求为空。结果应该是包含姓名和电子邮件请求的联系人列表。我的搜索请求获得未知数量的字段。
ExampleMatcher userExampleMatcher = ExampleMatcher.matchingAll()
.withNullHandler(ExampleMatcher.NullHandler.IGNORE);
Iterable<Contact> contacts = dao.findAll(Example.of(contactObject, userExampleMatcher));
此配置仅用于电话号码返回 true 结果,其他字段返回 null。
解决方案
如果Contact
实体具有原始字段,则它们的默认值实际上将用于创建查询。
如果不设置phoneNumber,它会一直寻找phoneNumber = 0
您可以用Primitive
字段替换Wrapper
字段:
public class Contact {
private String name;
private Long phoneNumber;
private String email;
private String organization;
}
OR
您可以ignore
通过手动指定这些字段的名称来原始字段:
ExampleMatcher userExampleMatcher = ExampleMatcher.matchingAll()
.withIgnorePaths("phoneNumber").withIgnoreNullValues();
这.withIgnoreNullValues()
是代码中处理程序的简写.withNullHandler(ExampleMatcher.NullHandler.IGNORE)
!
推荐阅读
- xamarin - Xamarin 中的字符串分配
- xamarin - Xamarin.Forms CarouselView:未选中项目的不透明度较低
- java - java.sql.SQLSyntaxErrorException:语法错误:遇到“St\u00f6rungen”
- php - 大型json数据未在php中解码
- mysql - mysql根据记录当前日期确定未来日期
- php - 在 jquery 中发布数据时如何使用 jquery UI 使 post.php 弹出消息
- r - 在 R 中,“整数”类型是否继承自“数字”类型?
- python - 安装 IPython 内核后,如何在 Jupyter Notebook 上运行 conda 环境的 shell 命令?
- android - 进度条内的Android textview
- python - 为什么即使显式检查是否为 None,在 python 中也会出现 NoneType 错误?