gpt4 book ai didi

postgresql - Postgres 间隔 Spring 数据动态参数不起作用

转载 作者:行者123 更新时间:2023-11-29 13:39:19 24 4
gpt4 key购买 nike

<分区>

我需要将动态参数传递给 Spring Data Postgres Native Query。参数在区间表达式中。

在运行代码时,我从 pgAdmin 验证以下内容仅返回 1 个结果(正确):

select * from recalls_t where created_date <= (now() - interval '18 hour')

问题:

1)在Spring Data代码中,下面的?1符号返回 2 个错误的结果:

@Query(value="select * from recalls_t where created_date <=  (now() - interval '?1 hour')", 
nativeQuery=true)
public List<RecallsT> findActiveRecallsInLastHrs(@Param("hours") int hours);

2) 然后我尝试了这个线程中的解决方案:Postgres Interval not working with native spring data JPA query

他们说要使用单个单位间隔的倍数。但这也会错误地返回 2 个结果:

@Query(value="select * from recalls_t where created_date <=  (now() - 
(interval '1 hour') * :hours)",
nativeQuery=true)
public List<RecallsT> findActiveRecallsInLastHrs(@Param("hours") int hours);

我发现解决此问题的唯一方法是在我的 Spring Data 查询中对数字“18”进行硬编码。所以现在没有动态参数,我正确地得到了 1 个结果。 Dynamic Param 实现均无效。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com