使用 JPA 命名查询只比较没有时间的日期
Date only comparison without time using JPA named query
我的数据库有一列是 DATE
。
生成实体时,它在实体 class 中创建了一个 Timestamp
字段。
@Column(name="MY_DATE")
private Timestamp myDate;
我传入的对象是一个java.util.Date
对象。 startDate
和 endDate
.
我需要编写一个 JPA 查询来获取在 startDate
和 endDate
之间具有 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
我的数据库有一列是 DATE
。
生成实体时,它在实体 class 中创建了一个 Timestamp
字段。
@Column(name="MY_DATE")
private Timestamp myDate;
我传入的对象是一个java.util.Date
对象。 startDate
和 endDate
.
我需要编写一个 JPA 查询来获取在 startDate
和 endDate
之间具有 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