gpt4 book ai didi

java - Hibernate 5 创建 ID 未标记为 IDENTITY 的表

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:36 26 4
gpt4 key购买 nike

我有一组实体。使用 hibernate 4 时,创建表时将 id 列标记为身份,而使用 hibernate 5 时,id 列不会标记为身份,并且也会生成序列。

当使用 hibernate 5 和预先存在的数据库对象并验证设置时,应用程序失败,提示序列不存在,即使表具有标记为身份的 id 列。

为什么 Hibernate 5 和 4 之间的行为存在这种差异?

是否可以在不更改实体和预先存在的数据库对象的情况下迁移到 hibernate 5?

最佳答案

Migration Guides 中所述,Hibernate 5 已切换到新的标识符生成器。

一个副作用是,对于 GenerationType.AUTO 过去作为默认标识符的 IDENTITY,现在您将获得 TABLE 标识符。查看HHH-11014 Jiraa 问题了解更多详细信息。

现在,要使用旧的标识符生成器,​​您只需将 hibernate.id.new_generator_mappings 配置属性设置为 false:

<property 
name="hibernate.id.new_generator_mappings"
value="false"
/>

应该可以了。

关于java - Hibernate 5 创建 ID 未标记为 IDENTITY 的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46058087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com