以REPLACE开头的HQL查询

时间:2016-10-05 08:41:42

标签: hql spring-data-jpa

我有一个以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吗?

2 个答案:

答案 0 :(得分:1)

mysql db_name < text_file 是底层DBMS的转换。因此,您在SQL中使用的某些功能无法被HQL解释。

您有两种方式:

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

  2. 您可以在SQL中编写查询,并且可以使用createSqlQuery方法,因此解释器将查询作为SQL本机查询运行。

答案 1 :(得分:0)

我使用nativeQuery = true flag将查询更改为本机SQL查询。