gpt4 book ai didi

java - JPA 对同一实体的多个 OneToMany 关系

转载 作者:搜寻专家 更新时间:2023-11-01 02:49:07 25 4
gpt4 key购买 nike

我正在尝试构建 JPA 应用程序。我基本上有

@Entity
public class Folder {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int id;
private String description;
private String name;

@OneToMany(mappedBy = "parent", cascade = CascadeType.PERSIST)
private List<AbstractItem> items = new LinkedList<AbstractItem>();

@OneToMany(mappedBy = "parent", cascade = CascadeType.PERSIST)
private List<AbstractItem> items2 = new LinkedList<AbstractItem>();
.
.
.
}

我可以成功地将一个项目添加到 item 列表中,并保存它。但是,如果我再次加载它,持久化项的相同对象将出现在列表 itemsitems2 中。

我试图通过添加一个 @JoinTable 注释来解决这个问题,但我无法让它工作。

有什么建议吗?

最佳答案

对于每种情况,您应该在 AbstractItem 中有两个对“文件夹”的引用。因此,应该相应地指定 mappedBy 值,例如:

  @OneToMany(mappedBy = "parent", cascade = CascadeType.PERSIST)
private List<AbstractItem> items = new LinkedList<AbstractItem>();

@OneToMany(mappedBy = "parent2", cascade = CascadeType.PERSIST)
private List<AbstractItem> items2 = new LinkedList<AbstractItem>();

关于java - JPA 对同一实体的多个 OneToMany 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15023883/

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