如何解决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)
处理程序的简写!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。