Hibernate中可选的多对多关系

时间:2013-11-07 17:12:37

标签: java hibernate java-ee entity-relationship

我想创建M:N关系,如下所示 enter image description here

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

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

我在Hibernate中的映射:

User.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>();
//...
}

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>();
//...
}

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

1 个答案:

答案 0 :(得分:0)

看到这个问题和主题的答案:

另见本教程:

本教程提供了如何实现正确的多对多映射的非常好的示例。