首页 > 解决方案 > 无法使用 OffsetDateTime 作为使用 JPA Data/JPQL 的查询参数

问题描述

我有一个带有数据成员updateDate类型的Entity CustomEntityOffsetDateTime

Repository为此定义了Entity一个简单的方法来检索与updateDate匹配的记录列表

List<CustomEntity> findByUpdateDate(OffsetDateTime updateDate);

现在,当从Controller/Service bean调用此方法时,我可以看到没有检索到匹配记录;但是,当我在数据库中执行生成的 SQL 时,我可以看到可用的匹配行。

我可以根据实体的其他数据成员检索记录;它只是一个问题OffsetDateTimeLocalDateTime

我明白java.time包支持不在JPA 2.1中;但是我正在使用JPA 2.3.1。我是否需要使用Converters (如JPA 2.1所建议的那样?

任何帮助都是非常可观的。

编辑:- 下面是实体的代码

@Entity
@Table(name = "SAMPLE_TABLE")
public class CustomEntity {
    
    @Id
    @GeneratedValue
    private Long id;
    
    @Column
    private OffsetDateTime updateDate;
    
    //Getters & Setters
}

我正在使用Microsoft SQL Server,生成的SQL查询(休眠生成)如下所示

select sample0_.id as id1_10, sample0_.updateDate as update2_10 from sample_table sample0_ where sample0_.updateDate=?

绑定参数 [1] 作为 [TIMESTAMP] - [ 2021-07-27T17:22:34.597Z ]

标签: javajpaspring-data-jpaoffsetdatetime

解决方案


推荐阅读