2016-10-05 2 views
0

У меня есть запрос, начинающийся с REPLACE. Когда я использую его непосредственно в консоли MySQL, все в порядке, поэтому запрос в порядке. Однако, когда я положил его в свой код так:Запрос HQL, начинающийся с REPLACE

@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 

Как я могу это исправить? REPLACE не поддерживается в HQL?

ответ

0

Я поменял свой запрос на собственный SQL-запрос, используя флаг nativeQuery = true.

1

HQL относится к базовой СУБД. Поэтому некоторые функции, которые вы используете в своем SQL, не могут быть интерпретированы HQL.

У вас есть два пути:

  1. изменить ваш HQL запрос (в этом случае вы можете переписать запрос с DELETE/заявление INSERT)

  2. вы можете написать запрос в SQL и вы может использовать метод createSqlQuery, поэтому интерпретатор запускает запрос как собственный SQL-запрос.

Смежные вопросы