gpt4 book ai didi

java - Hibernate 违反主键约束

转载 作者:搜寻专家 更新时间:2023-10-31 20:22:11 25 4
gpt4 key购买 nike

我正在尝试编写一个 SQL 脚本来将数据从某个旧表迁移到一个新表。新表的主键(id)由hibernate管理,所以作为旧表的主键。我不知道如何使用纯 SQL 为新表分配 ID,所以我正在做的是从旧表中获取 ID。迁移脚本按预期工作。

在某些时候,我的应用程序尝试使用 Hibernate 将数据插入到新表中,但我得到了违反主键约束的异常。我怀疑这是因为 hibernate 分配的键与我在迁移旧数据时提供的键冲突。顺便说一句 - hibernate 配置为为每个表分配唯一的主键。

我做错了什么?我该如何解决?

谢谢

最佳答案

如果您使用主键列自动递增的数据库(例如 mysql、MSSQL),您必须将现有 ID 的自动递增值设置为最大值(迁移后)。如果您使用序列生成 id(例如 oracle、postgree),则必须将现有 id 的当前序列值更改为最大值(迁移后)。

关于java - Hibernate 违反主键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11500434/

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