JPA一对多与多对多 - 书籍和作者

时间:2014-11-22 19:15:19

标签: java database hibernate jpa netbeans

对于JPA项目,我被要求实施以下情况:

一本书可以有很多作者。

还有一个UML声明作者可以有很多书,一本书可以有很多作者。

当涉及到这个主题时,我是初学者。 我需要多对多关系(使用交叉表) 或者我需要双向的一对多关系。

一对多关系的双向部分也让我感到困惑。如果有人能用一个很好的例子解释这一点。

1 个答案:

答案 0 :(得分:2)

双向关联允许您在对象空间以及JPA / Hibernate查询语言中导航此关系的两侧。

在您的示例中,数据库是多对多关联是强制性的(意味着您有一个BOOK,一个AUTHOR和一个BOOK_AUTHOR链接表)。 Hibernate为映射这种关系提供了两种可能性:

  1. 您可以使用两个实体对其进行建模:Book和Author,每个实体与另一个实体具有@ManyToMany关联(一个是拥有方,另一个是反方)

  2. 您可以拥有三个实体:Book,Author和BookAuthor,这次Book与BookAuthor有@OneToMany关联,而作者也有BookOuthor的@OneToMany关联。此选项允许您两个映射其他链接表列(BOOK_AUTHOR creation_time)。