我正在使用hibernate将实体持久化到我的数据库。目前它是一个德比数据库,但我很快就会把它转移到一个oracle数据库。
在我的classname.hbm.xml中我将id定义为:
<id name="id" type="long">
<column name="ID"/>
<generator class="increment"/>
</id>
如何设置ID的起始值?我希望它从10000而不是1开始。
答案 0 :(得分:5)
“增量”对于ID生成来说并不是一个好主意。
如果您要迁移到Oracle,那么您将使用序列生成ID,并且序列由oracle控制,因此您可以使用您想要的任何值开始。
答案 1 :(得分:2)
我认为你不能,看起来IncrementGenerator基于最高主键工作,所以除非你修复你的主键(我不建议你),你仍然坚持使用该功能。
会推荐一个不同的策略,它在一组机器上也不安全......看看Hibernate文档,也许是增强的标识符生成器:
答案 2 :(得分:1)
生成器类型增量查找表中的最大数字主键值并将其递增1。
生成器类型 native 在使用的基础数据库是Oracle时使用序列。您可以轻松地将序列的值扩展为任意的起始值。