JPA 2 持久化注解全解析
1. 关联映射基础
在实体关联映射中, @JoinTable
注解是一个常用工具,用于指定连接表的名称及其外键。以下是一个典型示例:
@OneToMany(cascade = ALL)
@JoinTable(
name="PublishedBooks",
joinColumns = { @JoinColumn( name = "publisher_id") },
inverseJoinColumns = @JoinColumn( name = "book_id")
)
Set<Book> books;
此代码展示了如何使用 @JoinTable
注解来定义一个连接表 PublishedBooks
,其中 joinColumns
指定了从当前实体到连接表的外键, inverseJoinColumns
则指定了从连接表到关联实体的外键。
2. 多对多关联映射
当多对多关联没有一个一等实体来连接关系的双方时,需要使用连接表来维护这种关系。可以自动生成连接表,也可以像在“多对一或一对多关联映射”中那样手动指定细节。合适的注解是 @ManyToMany
,它具有以下属性:
| 属性 | 描述 |
| ---- | ---- |
| mappedBy | 指拥有关系的字段,仅在双向关联时需要。如果一个实体提供了该属