I want to create M:N relationship as below
Each user can have zero or many ebooks
Each ebook must belongs to one or many users
My mappings in 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>();
//...
}
How can I add this additional constraints for example one or many - zero or many?, when I save only ebook object to database there is ebook that does not belongs to anyone.