这是我关于休眠的第二篇文章。自从我开始使用 hibernate 以来,它带来的问题比它解决的问题还多。这几乎让我觉得我应该坚持使用普通的旧 JDBC。反正,
这是我试图解决的问题之一。
我在 .hbm 文件中的序列生成器如下所示。
<id name="id" type="long" column="ID">
<generator class="sequence">
<param name="sequence">ADVENTURES_ID_SEQ</param>
<param name="allocationSize">1</param>
<param name="initialValue">17599</param>
</generator>
</id>
请注意:初始值为 17599。这是因为 oracle 序列中的 LAST_NUMBER 为:17599
CREATED 25-APR-12
LAST_DDL_TIME 25-APR-12
SEQUENCE_OWNER ADVENTURE_ADMIN
SEQUENCE_NAME ADVENTURES_ID_SEQ
MIN_VALUE 1
MAX_VALUE 9999999999999999999999999999
INCREMENT_BY 1
CYCLE_FLAG N
ORDER_FLAG N
CACHE_SIZE 20
LAST_NUMBER 17599
当我运行代码时,我看到在 Hibernate Debug 语句中生成的下一个序列为 200、201。
DEBUG SQL - select ADVENTURES_ID_SEQ.nextval from dual
DEBUG SequenceGenerator - Sequence identifier generated: 201
我预计 nextval 应该是 17600。似乎 oracle 序列根本没有被使用。
我的配置有什么问题以及如何修复它。任何帮助是极大的赞赏。
谢谢