2013-03-01 164 views
0

在Java中,我有一個超類Element和4個子類,我們稱它們爲ElementA,ElementB,ElementC,ElementD。JPA Java映射關係

表在我的數據庫:

Element(ElementID, title, description, targetGroup) : Primary key elementID 
ElementA(ElementID,...) : Foreign key elementID 
ElementB(ElementID,...) : Foreign key elementID 
ElementC(ElementID,...) : Foreign key elementID 
ElemendD(ElementID,...) : Foreign key elementID 

我也有:LearningProgram和LearningProgramElement:

LearningProgram(programcode, ....) : Primary key programcode 
LearningProgramElement(programcode, ElementID, dateFrom, dateUntil, ...) : Foreign key programcode, Foreign key elementID 

LearningProgramElement的元素鏈接到LearningProgram,也有這種關係的一些屬性:
的元素可以處於不同的LearningProgram中,但在每個LearningProgram中將具有不同的dateForm和dateUntil。

現在,在我的Java我有一個LearningProgram對象4所列出:

List<LearningProgramElement> elementA = new ArrayList<>(); 
List<LearningProgramElement> elementB = new ArrayList<>(); 
List<LearningProgramElement> elementC = new ArrayList<>(); 
List<LearningProgramElement> elementD = new ArrayList<>(); 

一個LearningProgram物體看起來是這樣的:

private String programcode; 
private int elementid; 
... 
private Element element; 

我現在得到的4倍相同的列表,包含所有LearningProgramElement的。
我怎樣才能讓我的jpa註釋,在列表elementA中只有LearningProgramElement誰擁有子元素ElementA的元素,依此類推?

回答

0

我認爲@MappedSuperClass是你想要的。看看那些文檔,看看這些例子是否符合你的用例。