【问题标题】:Optional Many to Many relationship in HibernateHibernate 中可选的多对多关系
【发布时间】:2013-11-19 11:20:00
【问题描述】:

我想创建 M:N 关系如下

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

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

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

当我仅将电子书对象保存到数据库时,如何添加此附加约束,例如 one or many - zero or many?有不属于任何人的电子书。

【问题讨论】:

  • 您是否尝试过创建具有额外逻辑的设置器?
  • 我有默认生成的设置器 .. 嗯,在添加没有所有者的电子书之前,您究竟是如何想到要阻止的?,换句话说,要制作一个或多个,休眠创建零个或多个据我所见
  • 这是一组奇怪的要求。只有与用户关联的电子书实体才能存在?如果我想创建一本电子书 A,如果没有用户拥有电子书 A,会发生什么?是否至少有一个 default 用户的概念?

标签: java hibernate jakarta-ee entity-relationship


【解决方案1】:

看到这个问题和线程的答案:

另请参阅本教程:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 2011-09-30
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    相关资源
    最近更新 更多