使用hibernate在hsqldb中选择UPDATE

时间:2013-08-05 07:11:09

标签: java hibernate hsqldb

当我使用hibernate(4.2.3.Final)在mem模式下对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是否支持从更新中选择?

2 个答案:

答案 0 :(得分:1)

在2.3文档的updatability部分中,它表示支持:

  

如果使用SQL限定符,则使用FOR UPDATE,那么所有可更新   结果集的列可以更新。

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

  

没有并发迁移支持(使Flyway群集安全)   Hsql 1.8,因为这个版本没有属性支持SELECT ... FOR   更新锁定

答案 1 :(得分:1)

SELECT FOR UPDATE已在HSQLDB 2.3.3中修复。

但NOWAIT将按照注释HSQLDB 2.3.3 NOWAIT

进行修复