我有一个以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吗?
答案 0 :(得分:1)
mysql db_name < text_file
是底层DBMS的转换。因此,您在SQL中使用的某些功能无法被HQL解释。
您有两种方式:
更改您的HQL查询(在这种情况下,您可以使用DELETE / INSERT语句重写查询)
您可以在SQL中编写查询,并且可以使用createSqlQuery方法,因此解释器将查询作为SQL本机查询运行。
答案 1 :(得分:0)
我使用nativeQuery = true flag将查询更改为本机SQL查询。