0

尝试使用 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。

4

1 回答 1

0

如果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)

于 2021-01-04T07:18:33.350 回答