HQL 查询,LocalDateTime 条件
HQL Query, LocalDateTime condition
我有一个模型有 LocalDateTime
属性,数据库中这个 属性 的值如下所示:2015-01-22 00:00:00
,我想做一个日期等于数据库日期的 hql 查询,无需指定时钟。
即在 SQL 中,我可以做到:
WHERE published_departure_date_local='2015-1-22';
这将 return 具有以下日期的结果:2015-01-22 00:00:00
在 HQL 中,它希望我发送一个 LocalDateTime
对象,它需要设置时钟,但我在查询时不知道时钟。
我尝试在 hql 查询中传递 LocalDate
,但它会抱怨,因为模型 属性 是 LocalDateTime
而我在 [= 中传递 LocalDate
18=] 子句。
我应该切换到本机 sql 查询吗?如果可能,我更愿意保留所有 hql。
您在使用 Spring Data JPA 吗?
根据您的问题标签假设您是,您可以做的一件事是使用 Between 子句,其中日期 1 为 2015-01-22 00:00:00
,日期 2 为 2015-01-22 23:59:59
。
来自 Table 4 来自 Spring 数据 doc,
样本:findByStartDateBetween
JPQL 片段:… where x.startDate between 1? and ?2
我有一个模型有 LocalDateTime
属性,数据库中这个 属性 的值如下所示:2015-01-22 00:00:00
,我想做一个日期等于数据库日期的 hql 查询,无需指定时钟。
即在 SQL 中,我可以做到:
WHERE published_departure_date_local='2015-1-22';
这将 return 具有以下日期的结果:2015-01-22 00:00:00
在 HQL 中,它希望我发送一个 LocalDateTime
对象,它需要设置时钟,但我在查询时不知道时钟。
我尝试在 hql 查询中传递 LocalDate
,但它会抱怨,因为模型 属性 是 LocalDateTime
而我在 [= 中传递 LocalDate
18=] 子句。
我应该切换到本机 sql 查询吗?如果可能,我更愿意保留所有 hql。
您在使用 Spring Data JPA 吗?
根据您的问题标签假设您是,您可以做的一件事是使用 Between 子句,其中日期 1 为 2015-01-22 00:00:00
,日期 2 为 2015-01-22 23:59:59
。
来自 Table 4 来自 Spring 数据 doc,
样本:findByStartDateBetween
JPQL 片段:… where x.startDate between 1? and ?2