gpt4 book ai didi

java - 从一个数据库导出到另一个数据库时如何防止 "autonumber"字段发生冲突?

转载 作者:行者123 更新时间:2023-12-01 05:57:59 25 4
gpt4 key购买 nike

假设我有一个通过 hibernate 保存/加载的 Person 类:

class 
{
int PersonId;
String Name;
}

PersonId 是一个“自动编号”,由 hibernate 在保存 Person 时生成。
现在假设我在测试数据库中创建了一堆 Person,现在我想将其复制到生产数据库。
但是,在生产数据库中,已经有一个 PersonId 为 1,名为“John”。
在测试数据库中,PersonId 1 是“William”。

如何将“William”作为 PersonId=2 导入到生产数据库中?

请注意,测试数据库中还会使用 PersonId 的其他表,例如地址表等。因此,所有这些也需要导出/导入,同时保持 的完整性人员 ID..

编辑:我认为一种可能是测试数据库应配置为使用从 90,000 开始的自动编号,而我们知道生产数据库的 PersonId 值小于 10,000。所以我们可以这样“拆分”它。但是,如果用户忘记设置它并且现在陷入从 1 开始的自动编号该怎么办?用户不应该仅仅为了更改我的软件理想情况下应该做的 id 而重做所有的工作..

最佳答案

Person personToInsert=new Person("William")
personToInsert.save()

您最好编写一个脚本,将适当的 Hibernate 对象添加到生产数据库,而不是尝试使用测试数据库中的 SQL 转储。您的脚本可能会执行如下操作。获取所有人的名单。为列表中的每个人创建一个新对象,并设置必要的字段,例如姓名、年龄等。将该对象保存到数据库中。插入人员后,添加与每个人员关联的任何对象,例如员工信息。

关于java - 从一个数据库导出到另一个数据库时如何防止 "autonumber"字段发生冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2272303/

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