【问题标题】:HQL Query starting with REPLACE以 REPLACE 开头的 HQL 查询
【发布时间】:2016-10-05 08:41:42
【问题描述】:

我有一个以 REPLACE 开头的查询。当我直接在MySQL 控制台中使用它时,一切都很好,所以查询没问题。但是,当我把它放在我的代码中时:

@Query("REPLACE INTO WeekAggregate...

有一个错误:

web - 2016-10-05 10:35:44,297 [localhost-startStop-1] ERROR o.h.hql.internal.ast.ErrorCounter - line 1:1: unexpected token: REPLACE
antlr.NoViableAltException: unexpected token: REPLACE

我该如何解决这个问题? HQL 不支持 REPLACE 吗?

【问题讨论】:

    标签: hql spring-data-jpa


    【解决方案1】:

    HQL 是对底层 DBMS 的遍历。因此,您在 SQL 中使用的某些函数无法被 HQL 解释。

    你有两种方法:

    1. 更改您的 HQL 查询(在这种情况下,您可以使用 DELETE/INSERT 语句重写您的查询)

    2. 您可以使用 SQL 编写查询,并且可以使用 createSqlQuery 方法,以便解释器将查询作为 SQL 原生查询运行。

    【讨论】:

      【解决方案2】:

      我使用 nativeQuery = true 标志将查询更改为原生 SQL 查询。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-30
        • 1970-01-01
        • 2020-09-22
        • 1970-01-01
        • 2016-12-12
        • 2020-11-18
        • 2017-12-18
        • 1970-01-01
        相关资源
        最近更新 更多