使用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);