我正在使用:
Spring 3.2
Hibernate 4.1.9
我需要用 JPA 映射三个类。A类与B类是ManyToMany关系。A类和B类的唯一组合需要拥有C类的集合。
表 A
foo
id | name
表 B
bar
id | name
表 C
data
id | xrefId
连接表-- (fooId,barId) 上的唯一键
xref
id | fooId | barId
改变现有的数据结构不是一种选择。
编辑1:
目标:加载一个 Foo,获取它的 Bars 集合。从每个 Bar 中,获取其(他们的!)数据集合。
A级
@Entity
public class Foo {
@Id
private UUID id;
@ManyToMany(optional = false)
@JoinTable(name = "xref",
joinColumns = { @JoinColumn(name = "fooId") },
inverseJoinColumns = { @JoinColumn(name = "barId") })
private List<Bar> lstBar = new ArrayList<Bar>();
}
B类
public class Bar {
@Id
private UUID id;
@ManyToMany(mappedBy = "lstBar")
private List<Foo> lstFoo = new ArrayList<Foo>();
}
C类
public class Data {
@Id
private UUID id;
}