【发布时间】:2020-05-24 15:06:18
【问题描述】:
我正在尝试向 PostgreSQL 发出请求,看起来像这样:
@Query(value = "SELECT t FROM Tasks t WHERE daterange(t.date_from, t.date_to) && daterange '(:dateFrom, :dateTo)'", nativeQuery = true)
Page<Task> findTest(@Param("dateFrom") String dateFrom,
@Param("dateTo") String dateFrom,
Pageable pageable);
在dateFrom 和dateTo 的结果值中,由于单引号,没有传递到:dateFrom 和:dateTo。
:dateFrom 和 :dateTo 看起来像一个字符串。如果我删除引号,参数传递正常,但请求当然无效。
那么有没有办法将值传递给引用的(:dateFrom, :dateTo)?
【问题讨论】:
-
除了 Sebastion 在答案中所说的之外,您确定
daterange需要字符串而不是 PostgreSQL 的日期/时间类型吗? JPA 支持将各种 JavaDate、Calendar和(自 JPA 2.2 起)java.time类转换为它们的数据库等价物......尽管您可能需要一个@Temporal注释来指定 which i> 要通过的日期/时间类型。 -
你可以在这之间使用。
标签: java postgresql spring-boot jpa