我正在使用 jadira PersistentDateTimeWithZone 来存储带有时区的 joda DateTime。这一切都按预期工作,除了使用 ">=" 搜索日期 - 它比较 where 子句中的时区字符串(参见底部的 SQL)。有什么方法可以进一步完善我的注释或 HQL 以防止这种情况发生,还是 Jadira 中的错误
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTimeWithZone")
@Columns(columns={@Column(name="departureDate", nullable = false),@Column(name="departureDateTimezone", nullable = false)})
private DateTime depScheduled;
我的 JpaRepository 中的 HQL 查询:
/**
* Get all things that depart after the given date
*/
@Query("select e from MyTable e where depScheduled>=?1")
List<MyTable> loadDatFromMyTable(DateTime depDate);
生成的 SQL - 看到它正在尝试比较日期和时区字符串(:
Hibernate:
select
x.departureDate as departur5_4_,
x.departureDateTimezone as departur6_4_,
from
MyTable x
where
and crewroster0_.departureDate>=?
and crewroster0_.departureDateTimezone>=?