[英]JPA ManyToMany Entity is not persisted
我有以下兩個實體:
@Entity
@Table(name = "mailinglist")
public class MailingList {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String name;
@ManyToMany(fetch = FetchType.EAGER,cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
})
@JoinTable(
name = "has_account",
joinColumns = @JoinColumn(name = "mailinglist_name"),
inverseJoinColumns = @JoinColumn(name = "account_id"))
private List<EmailAccount> accounts;
和
@Entity
@Table(name = "emailaccount")
public class EmailAccount {
@Id
@Column
private String email;
@ManyToMany(mappedBy = "accounts")
@Column
private List<MailingList> mailingLists;
每當我嘗試通過請求添加新電子郵件時,盡管它們已正確解析和存儲,但它們不會被持久化。 可能是什么原因?
如果問題不夠清楚,請告訴我您缺少哪些信息。
請參閱Hibernate 提示:如何 map 雙向多對多關聯
雙向關聯在查詢中很容易使用,但是當您持久化一個新實體時,它們還需要一個額外的步驟。 添加或刪除實體時,需要更新雙方的關聯。
更新兩個實體上的關聯是一項容易出錯的任務。 因此,為它提供輔助方法是一種很好的做法。
@Entity
@Table(name = "mailinglist")
public class MailingList {
// ...
public void addEmailAccount(EmailAccount acc) {
this.accounts.add(acc);
acc.getMailingLists().add(this);
}
public void removeBook(EmailAccount acc) {
this.accounts.remove(acc);
acc.getMailingLists().remove(this);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.