簡體   English   中英

JPA:如何堅持多對多關系

[英]JPA: how to persist many to many relation

我有這兩個具有多對多關系的實體。

@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。

我通過 JPA 中的 @ManyToMany 注釋定義了多對多關系。

我已經編寫了一個代碼示例來插入。

我想這張圖會幫助你理解

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM