Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JPQL中减去从当前_日期算起的年份_Java_Jpql - Fatal编程技术网

Java 在JPQL中减去从当前_日期算起的年份

Java 在JPQL中减去从当前_日期算起的年份,java,jpql,Java,Jpql,我想删除超过2年的行。在SQL中,我是这样做的: DELETE FROM table WHERE creation_date < (current_date - interval '2 year'); 从创建日期

我想删除超过2年的行。在SQL中,我是这样做的:

DELETE FROM table WHERE creation_date < (current_date - interval '2 year');
从创建日期<(当前日期-间隔“2年”)的表中删除;
现在我想用JPQL在Java中为我的JPA存储库做同样的事情。 在JPQL中,我得到了一个错误,因为时间间隔未知,并且“-”(减号)不正确

JPQL查询

@Query("DELETE FROM table t WHERE t.creation_date <  (current_date - interval '2 year')")
@Query(“从表t中删除,其中t.creation\u date<(当前日期-间隔“2年”)

如果您有任何建议,我将不胜感激。

您可以在应用程序中计算日期时间,假设您正在使用
LocalDateTime
进行
creation\u date

LocalDateTime dateTime = LocalDateTime.now().minus(Period.ofYears(2));
并在JPQL中传递参数

@Query("DELETE FROM table t WHERE t.creation_date < :dateTime")
void deleteByDateTime(LocalDateTime dateTime)
@Query(“从表t中删除,其中t.creation\u date<:dateTime”)
void deleteByDateTime(LocalDateTime-dateTime)

为什么不使用本机查询?afaikjpql没有给您这个选项。