1

我想创建 M:N 关系如下 在此处输入图像描述

  • 每个用户可以拥有个或多个电子书

  • 每本电子书必须属于一个或多个用户

我在 Hibernate 中的映射:

用户.java

@Entity
@Table(name = "USERS")
public class User {
//...
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "USER_EBOOK", joinColumns = @JoinColumn(name = "USER_ID", nullable = false),
           inverseJoinColumns = @JoinColumn(name = "EBOOK_ID", nullable = false))   
private List<Ebook> listOfEbooks = new ArrayList<Ebook>();
//...
}

电子书.java

@Entity
@Table(name="EBOOK")
public class  Ebook {
//...
@ManyToMany(mappedBy = "listOfEbooks", fetch = FetchType.EAGER)  
@NotFound(action = NotFoundAction.EXCEPTION)    
private List<User> listOfEbookUsers = new ArrayList<User>();
//...
}

如何添加此附加约束,例如一个多个 - 零个多个?,当我仅将电子书对象保存到数据库时,存在不属于任何人的电子书。

4

1 回答 1

0

请参阅此问题和线程的答案:

另请参阅本教程:

本教程提供了很好的示例,说明如何实现正确的多对多映射。

于 2013-11-07T17:16:57.180 回答