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