如何构造比较实体中日期的Spring Data JPA查询方法名?

问题描述 投票:0回答:0

我有一个具有 2

java.util.Date
属性的实体,像这样(为简洁起见省略了一些注释和细节):

public class Artifact {
    @Column(name = "modified")
    private Date modified;

    @Column(name = "last_deployed")
    private Date lastDeployed;
}

在存储库(扩展

JpaRepository<>
)中,我需要一个查询方法来返回
Artifact
的所有实例,其中
lastDeployed
null
或在
modified
日期之前。根据文档,这个方法名称似乎应该有效:

    Stream<Artifact> findByLastDeployedIsNullOrModifiedIsAfterLastDeployed();

但是,当 Spring Date 启动并尝试生成存储库代理时,这会导致以下错误:

 org.springframework.data.mapping.PropertyReferenceException: No property isAfterLastDeployed found for type Date! Traversed path: Artifact.modified.

我也尝试过使用

IsGreaterThan
IsBefore
等查询方法名称的变体,但都会产生类似的错误,其中 Spring Data 似乎认为查询关键字是属性名称的一部分。

我如何构造一个查询方法名称来比较我需要的实体中的两个日期?

spring spring-data-jpa spring-data
© www.soinside.com 2019 - 2024. All rights reserved.