我需要替换pgAdmin4中的代码:

DELETE from order_entity where (LOCALTIMESTAMP - local_date_time > '00:10:00')

要@Query Spring boot,请执行以下操作:

@Query(" DELETE from OrderEntity o where (current_timestamp - o.localDateTime < '00:10:00')")

但我有一个问题:'(', <expression>, FUNCTION or identifier expected, got '('

请帮忙.

推荐答案

根据规范,JPA不提供任何减go 时间戳的方法,因此,-运算符不能用于时间戳.这就是为什么你会收到这个错误.

这里有三种解决方案:

  • 在java中计算current_timestamp - o.localDateTime,然后在查询中传递计算值.那么JPA对这个查询就没有任何问题了.例如where calc_diff < '00:10:00'.

  • 在数据库供应商可能支持此操作的地方使用本机查询,并提供一些特定功能.

    1. 如果使用Eclipse链接作为JPA实现,可以利用JPQL语言内部的Function方法,使用它可以在JPA查询中调用数据库供应商现有的特定函数.
    2. 如果使用Hibernate作为JPA实现,可以利用JQPL语言中的SQL方法,在JPA查询中调用数据库供应商现有的特定函数.

    Eclipse Link/Hibernate的上述两种方法允许您对JPA不支持的部分使用JPQL查询和一些本机查询,以减go 时间戳.

Java相关问答推荐

同时运行JUnit测试和Selenium/Cucumber测试时出现问题

如果一个子类没有构造函数,超类也没有构造函数,那么为什么我可以构造子类的实例呢?

Java模式匹配记录

现场观看Android Studio中的变化

';com.itextpdf.ext.html.WebColors已弃用

Spark上下文在向Spark提交数据集时具有内容,但Spark在实际构建它时发现它为空

对Java中的通配符参数的混淆

通过Spring Security公开Spring Boot执行器端点

基于接口的投影、原生查询和枚举

Log4j与jdk21兼容吗?

X=x*0.90;产生有损转换误差.X*=0.90;不是.为什么?

无法将GSON导入到我的JavaFX Maven项目

A.ForEach与For(类型a:集合)

有没有办法在o(log(N))中以系统的方式将数组中的小块元素复制和移动到新增长的数组中的左侧?

如何在Java中使用正则表达式拆分字符串

在Java中将对象&转换为&q;HashMap(&Q)

持续时间--为什么在秒为负数的情况下还要做额外的工作?

OpenJDK20:JEP434:Foreign Function&;内存API(第二次预览)

使用StringBuilder和append方法创建字符串时Java字符串内部方法的问题

找不到 jar 文件系统提供程序try 使用 jdeps 和 jlink 创建收缩 Java 映像来运行 Minecraft