[英]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.