假设我有一个序列,叫做 TEST_SEQ,选择它的下一个值应该怎么做? 这种方式不起作用:
select next value for TEST_SEQ
可能是因为它期望一个"FROM"子句。 在Hibernate中查看HSQLDialect.getSequenceNextValString(),我看到了这个:
"select next value for " + sequenceName + " from dual_" + sequenceName
在我的情况下,这将导致类似于:
select next value for TEST_SEQ from dual_TEST_SEQ
这种方法在2.0.0-rc8版本中不起作用(我只是假设这个方法在2.0版本之前的版本中可行 - 尚未验证)。 我找到了一个解决方案,它涉及创建一张只有1行的简单表格,名称为DUAL,这种情况下就可以使用(类似于Oracle):
select next value for TEST_SEQ from DUAL
但是hsqldb默认情况下没有这个表,而且我不确定如何让hibernate在“第一次启动”时生成这样的表。
我认为肯定有一种方法可以从箱子中获取序列的下一个值,我只是错过了它。 有什么想法吗?
<column name="id" type="INTEGER" required="true" primaryKey="true" />
。插入对象时应该做什么才能获得新的键值?我还在使用iBatis。 - James P.