JoinTable 注释示例

在 JPA 中映射多对多关系时,可以使用 @JoinTable 注释提供用于连接外键的表的配置:

@Entity
public class EntityA {
   @Id
   @Column(name="id")
   private long id;
   [...]
   @ManyToMany
   @JoinTable(name="table_join_A_B",
              joinColumns=@JoinColumn(name="id_A"), referencedColumnName="id"
              inverseJoinColumns=@JoinColumn(name="id_B", referencedColumnName="id"))
   private List<EntityB> entitiesB;
   [...]
}

@Entity
public class EntityB {
   @Id
   @Column(name="id")
   private long id;
   [...]
}

在这个由 EntityA 组成的实例中,通过 entitiesB 字段实现了与 EntityB 的多对多关系,我们使用 @JoinTable 注释来指定连接表的表名是 table_join_A_B,由列 id_Aid_B,外键分别引用 EntityA 表和 EntityB 表中的列 id; (id_A,id_B) 将是 table_join_A_B 表的复合主键。