java - Spring Data JPA 中的自定义(原始)查询

标签 java spring postgresql spring-mvc spring-data-jpa

我在 JPA 中使用自定义查询,它不允许我使用 interval 关键字。如果我在查询中不使用 - interval '7 days',它会给出正确的输出。

异常说: Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: interval near line 1, column 214

       @Query("select d from DomainName d , DomainNameReminder dr, Reseller  r"+
        " where d.reminder.id = dr.id  "+
        " and dr.secondNotification=current_date - interval '7 days' "+
        " and r.checkParty=true "+
        " and r.id = d.invoicingParty.id ")
        public List<Object> findDomainsBySecondNotificationDate();

这个查询基本上带来了今天前 7 天有第二次通知日期的所有记录。

我的接口(interface)声明为

public interface DomainNameRepository extends JpaRepository<DomainName, Long>, 
QueryDslPredicateExecutor<DomainName> {

我的查询在 pgadmin postgresql 客户端 中给出了正确的输出,我很惊讶为什么我不能在这里使用关键字。

最佳答案

这解决了我的问题。

我使用了 nativeQuery=true 并使用了我在 postgresql 中执行的查询。也想与他人分享。

@Query( nativeQuery = true, value = "select domain_name.* from domain_name, domain_name_reminder, reseller " +
        "where domain_name.reminder_id = domain_name_reminder.id " +
        "and domain_name_reminder.second_notification=current_date - interval ':totalDays days' " +
        "and reseller.myCheck=true " +
        "and reseller.id = domain_name.invoicing_party_id ")
public List<DomainName> findDomainsBySecondNotificationDate(@Param("totalDays")Integer totalDays);

关于java - Spring Data JPA 中的自定义(原始)查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32516534/

相关文章:

java - Eclipse RCP - Shere javadocs 和工作区中项目之间依赖关系的附加源

java - KNIME 批处理模式执行挂起/永不返回(从 Java 进程启动)

java - 如何在 Java 中高效地创建 Web 数据结构?

eclipse - 如何让我的 Maven Junit 测试打印出与 Eclipse JUnit 生成的相同的堆栈跟踪?

java - @ResponseBody,不尊重对象的构造函数

postgresql - SELECT 使用模式名称

java - 将对象传递给另一个类会创建一个新的单独对象吗?

java - 为什么我在运行 docker image 时收到 Error : Could not find or load main class . jar

database - 检索按 PostgreSQL 的 Ltree 模块下的列排序的完整层次结构

sql - 通过raster2pgsql导入栅格,但出现sql语法错误