使用JPA示例查询时,是否可以为一列而不是全部列指定空匹配?空匹配似乎只能应用于所有列。

class Entity {
  private Integer id;
  private String name;
  private Instant createdAt;
  private Instant deletedAt;
  // getters and setters
}


通过示例查询时,我想在示例中包含deletedAt实际上为null的情况,但忽略其他字段上的null匹配。在数据库中,created_at列是TIMESTAMP WITHOUT TIME ZONE列(postgresql)

编辑:Spring data query where column is null中提出的解决方案不适用,因为它们没有利用示例查询的优势

最佳答案

您可以尝试通过ExampleMatcher实现所需的功能。特别是ExampleMatcher.includeNullValues()和/或ExampleMatcher.withIgnorePaths("deletedAt")

尝试一个或两个:

ExampleMatcher exampleMatcher = ExampleMatcher.matchingAll()
                                               .withIgnorePaths("deletedAt")
                                               .withIncludeNullValues();
Example<Entity> ex = Example.of(obj, exampleMatcher);

08-18 05:04