我正在尝试向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)']
查询不能在没有引号的情况下工作,因为您正尝试使用以下方式获取数据:
获取任务 位置 日期> 2015 与 日期> 2014
[基本上,如果您尝试从2014年6月1日开始执行任务,它将正常工作,但是date > 2015
并不正确。因此,我建议您将&&
更改为<@
。Here是一些不错的范围类型运算符。