4

当我使用 hibernate (4.2.3.Final) 在内存模式下对 hsqldb (1.8.0.7) 运行查询时,出现以下异常

 java.sql.SQLException: Unexpected token: FOR in statement [SELECT *
 FROM MYTABLE where ID=? FOR UPDATE NOWAIT]     at
 org.hsqldb.jdbc.Util.throwError(Unknown Source)    at
 org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)   at
 org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)    at 
 ...

hsqldb 是否支持从更新中选择?

4

2 回答 2

1

在2.3 文档的可更新性部分中声明它以某种方式受到支持:

如果使用 SQL 限定符 FOR UPDATE,则结果集的所有可更新列都变为可更新的。

但我无法在 1.8 的文档中找到它。我发现一些网站,比如this,说 SELECT FOR UPDATE 在 1.8 版中不受支持。

Hsql 1.8 不支持并发迁移(使 Flyway 集群安全),因为此版本不支持 SELECT ... FOR UPDATE 锁定

于 2013-08-05T07:51:11.477 回答
1

SELECT FOR UPDATE在 HSQLDB 2.3.3 中已修复。

然而,NOWAIT 将被修复,如HSQLDB 2.3.3 NOWAIT所述

于 2015-08-25T15:00:46.223 回答