JPA引用表映射

时间:2012-07-13 08:12:26

标签: java jpa one-to-many

有两个主要的@Entity类反映了这些表:

TableA {id,name}
TableB {id,name}

一个参考表

TableC {tableA.id,tableB.id}

问题是:如何将TableA的实体字段与@OneToMany相关映射到TableB对象列表:

@OneToMany
??????????
private List<TableBEntity> tableBItems;

1 个答案:

答案 0 :(得分:3)

如果你真正拥有的是OneToMany(这意味着在tableB.id中最多只出现一次TableC),那么映射如下:

@OneToMany
@JoinTable(name = "TableC",
           joinColumns = @JoinColumn(name = "TABLE_A_ID"),
           inverseJoinColumns = @JoinColumn(name = "TABLE_B_ID"))
private List<TableBEntity> tableBItems;

另外,你所拥有的实际上是ManyToMany,并且映射是相同的,除了@OneToMany必须被@ManyToMany替换。