我最近在尝试为我们的业务实体从身份列迁移到基于序列的 id 生成时遇到了 Hibernate 的这种行为。hibernate_sequence
问题是自从我们的应用程序第一次部署以来,我们一直在 Oracle 上使用生成。
所以问题是:true
在现有的生产数据库上设置以下 Hibernate 的参数是否安全,而不会弄乱已经生成的 id?
hibernate.id.new_generator_mappings=true
编辑:Hibernate 文档描述了该更改与现有数据库不向后兼容。
我们HIBERNATE_SEQUENCE.NEXTVAL
在数据库迁移中使用,这显然是不安全的,因为NEXTVAL
可能与预先存在的 id 冲突。
如果我没有大错特错,可以通过将HIBERNATE_SEQUENCE
' 的当前值设置为数据库中的最大 id 来获得向后兼容性。我对么?有什么办法可以找出来吗?