org.hibernate.hql.internal.ast.querysyntaxception:应为open,在第1行第23列[insert into backupotp from otp]附近找到“from”

t1qtbnec  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(375)

我在springboot1.5中有一个项目 mysql 数据库。我有两个实体类 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.altafjava.central.entity.OTP where isExpired=:boolean]

如何解决这个问题?

jfgube3f

jfgube3f1#

最后,我得到了答案。
实际上,这是hql语法的问题。我的hql语法是错误的。我查看了hibernate insert查询文档并修改了insert语法

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);

现在它正在工作。

相关问题