我正在尝试向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 AND日期> 2014
基本上,如果您尝试从2014年6月1日开始执行任务,它将可以正常工作,但是date > 2015
并不正确。
因此,我建议您将&&
更改为<@
,如果我理解您的要求,则任务日期范围将包含在使用parameters构建的范围内。
Here是范围类型的一些不错的运算符。