java Hibernate增量起始数
我正在使用hibernate将一个实体持久化到我的数据库中。目前它是一个derby数据库,但我很快就会将其转移到oracle数据库
以我的名字。哈佛商学院。xml I的id定义如下:
<id name="id" type="long">
<column name="ID"/>
<generator class="increment"/>
</id>
如何设置id的起始值?我希望从10000开始,而不是1
你可以在下面搜索框中键入要查询的问题!
我正在使用hibernate将一个实体持久化到我的数据库中。目前它是一个derby数据库,但我很快就会将其转移到oracle数据库
以我的名字。哈佛商学院。xml I的id定义如下:
<id name="id" type="long">
<column name="ID"/>
<generator class="increment"/>
</id>
如何设置id的起始值?我希望从10000开始,而不是1
# 1 楼答案
生成器类型增量在表中查找最大数字主键值并将其增量1
当使用的底层数据库是Oracle时,Generator typenative使用序列。您可以轻松地将序列的值增加到任意的起始值
# 2 楼答案
我不认为您可以,似乎IncrementGenerator是基于最高主键工作的,因此除非您修复主键(我不建议这样做),否则您将无法使用该功能
会推荐一种不同的策略,在一组机器中也不安全。。。查看Hibernate文档,可能还有增强的标识符生成器:
http://docs.jboss.org/hibernate/stable/core/reference/en/html/mapping.html#mapping-declaration-id-enhanced
# 3 楼答案
“增量”并不是生成ID的好主意
如果您要迁移到Oracle,那么您将使用一个序列来生成ID,该序列由Oracle控制,因此您可以让它以您想要的任何值开始
Derby从10.6开始就支持sequences,不过需要Hibernate3.6才能将其安装到work