gpt4 book ai didi

java - 使用新主键克隆现有对象

转载 作者:行者123 更新时间:2023-11-30 04:59:21 24 4
gpt4 key购买 nike

我有两个对象,如下

class A{
Set<B> bs ;

}

class B{
A a;

}

现在,我想找到 id 为 1 的 A 并插入一条 id 为 2 的新记录,所有其他值都相同。另外,与 A 关联的 B 也应该新插入。

例如,如果初始 A 的 ID 为 1,并且与 5 个 B 关联,那么在我的代码执行后,我想要 2 个 id=1 和 2 的 A 和 10 个 B(A1 5 个,A2 5 个)。

我尝试了以下方法:

    stat tx
A a= Find A with id a
make a transient
a.setId(null) ; As id is auto incremnt
persist A
commit tx

我遇到异常

Found two representations of same collection B.

我认为这是因为 B 的感染者在插入时具有与 A 相同的旧 ID

注意:我使用的是 HBM 文件而不是 JPA。

最佳答案

这是正确的,因为在同一个 session 中不能有 2 个重复的对象。

请您应该分离对象并保存它,否则请使用合并。

您可以在此处阅读有关合并的更多信息:

http://www.hibernate-training-guide.com/merge.html

关于java - 使用新主键克隆现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7468750/

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