【发布时间】:2013-09-21 18:01:30
【问题描述】:
我最近在尝试为我们的业务实体从身份列迁移到基于序列的 ID 生成时遇到了this behavior of Hibernate。问题是自从我们的应用程序第一次部署以来,我们一直在 Oracle 上使用 hibernate_sequence 生成。
所以问题是:在现有生产数据库上将以下 Hibernate 的参数设置为 true 是否安全,而不会弄乱已经生成的 id?
hibernate.id.new_generator_mappings=true
编辑: Hibernate documentation 描述了该更改不向后兼容现有数据库。
我们在数据库迁移中使用 HIBERNATE_SEQUENCE.NEXTVAL,这显然不安全,因为 NEXTVAL 可能与预先存在的 id 冲突。
如果我没有大错特错,可以通过将HIBERNATE_SEQUENCE 的当前值设置为数据库中的最大 id 来获得向后兼容性。我对么?有什么办法可以查到吗?
【问题讨论】:
标签: java oracle hibernate orm sequence