org.hibernate.hql.internal.ast.QuerySyntaxException: ожидается ОТКРЫТО, найдено «из» возле строки 1, столбец 23 [вставить в BackupOTP из OTP] - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть проект в Spring Boot 1.5 с базой данных mysql.У меня есть 2 класса сущностей BackupOTP & OTP, и я хочу скопировать данные из таблицы OTP в таблицу BackupOTP с использованием HQL.Для этого я написал этот код.

Query query=session.createQuery("insert into BackupOTP from OTP where isExpired=:boolean");
query.setBoolean("boolean", true);
int i=query.executeUpdate();
System.err.println("i = "+i);

Но я получаю это исключение

org.hibernate.hql.internal.ast.QuerySyntaxException: 
expecting OPEN, found 'from' near line 1, column 23 
[insert into BackupOTP from com.groupbima.central.entity.OTP where isExpired=:boolean]

Как решить эту проблему?

1 Ответ

0 голосов
/ 23 ноября 2018

Наконец-то я получил ответ.

На самом деле, это была проблема с синтаксисом HQL.Мой синтаксис HQL был неверным.Я просмотрел документацию запроса вставки Hibernate и изменил свой синтаксис вставки следующим образом:

Query query=session.createQuery("insert into BackupOTP (otpId, createdTime, encryptedOTP, isExpired, updatedTime)"
+ " select otpId, createdTime, encryptedOTP, isExpired, updatedTime from OTP where isExpired=:boolean");

query.setBoolean("boolean", true);
int i=query.executeUpdate();
System.err.println("i = "+i);

Теперь он работает.

...