有两个主要@Entity
类反映了这些表:
TableA {id,name}
TableB {id,name}
和一张参考表
TableC {tableA.id,tableB.id}
问题是:如何将具有关系TableA
的实体字段映射@OneToMany
到 TableB 对象列表:
@OneToMany
??????????
private List<TableBEntity> tableBItems;
有两个主要@Entity
类反映了这些表:
TableA {id,name}
TableB {id,name}
和一张参考表
TableC {tableA.id,tableB.id}
问题是:如何将具有关系TableA
的实体字段映射@OneToMany
到 TableB 对象列表:
@OneToMany
??????????
private List<TableBEntity> tableBItems;
如果您真正拥有的是 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
.