gpt4 book ai didi

java - JPA:如何保持多对多关系

转载 作者:行者123 更新时间:2023-11-29 04:39:32 26 4
gpt4 key购买 nike

我有这两个具有多对多关系的实体。

@Entity
public class User {

@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<User> users = new ArrayList<User>();
}

@Entity
public class Language {
@ManyToMany(mappedBy = "languages")
private List<User> users = new ArrayList<User>();
}

我的语言表中已经保存了 20 种语言。现在,我想创建一个用户并将该用户与语言表中的第一语言联系起来。所以我做了这样的事情

    Language selectedLanguage = languageService.findById(1);
stammdaten.getLanguages().add(selectedLanguage);
stammdatenService.save(stammdaten);

但这给了我错误 org.hibernate.PersistentObjectException: detached entity passed to persist: com.example.outgoing.Entity.Language。那么我怎样才能保存这个多对多的关系。这里要注意一件事:我不想添加新语言。我想使用已创建的语言添加新用户。

最佳答案

CascadeType.ALL 替换为 CascadeType.MERGE

此外,在两个实体上添加 setter 。

关于java - JPA:如何保持多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802264/

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