使用 JPA 命名查询只比较没有时间的日期

Date only comparison without time using JPA named query

我的数据库有一列是 DATE

生成实体时,它在实体 class 中创建了一个 Timestamp 字段。

@Column(name="MY_DATE")
private Timestamp myDate;

我传入的对象是一个java.util.Date对象。 startDateendDate.

我需要编写一个 JPA 查询来获取在 startDateendDate 之间具有 my_date 的记录。正在考虑时间。

查询条件

o.myDate >=:inputDate AND o.myDate <=:inputDate

你的实体代码是自动生成的吗?也许您应该尝试更新生成的实体代码。将 myDate 字段的类型更改为 Date 而不是 java.sql.Timestamp。然后用@Temporal注解,类型指定DATE,如下代码所示:

@Column(name="MY_DATE")
@Temporal(TemporalType.DATE)
private Date myDate;

在您的查询中,您可以使用 BETWEEN 代替比较运算符:

o.myDate BETWEEN :startDate AND :endDate