0
首先的一部分:我知道有很多類似的問題在這裏,但我讀過他們大多和一切似乎ADRESS略有不同的問題,也沒有人有一個滿意的答案...所以,我還是希望有人知道如何處理我的問題......多對多的複合鍵
簡單地說,我有一個具有複合鍵的實體,我想加入其他實體的集合該複合鍵的一部分。不幸的是,hibernate迫使我將複合關鍵字的另一部分包含到連接中,導致無用的大連接表(對於250個不同的值集合,大於20m行...)。因此,我想從連接中排除密鑰的不必要部分。
實體草圖:
public class A {
@Id
int i_am_A;
@OneToMany
@JoinColumn(referencedColumnName = "i_am_A",name="A_i_am_A")
Set<AB> abs;
}
public class B {
@Id
int i_am_B;
@Id
int myLanguage;
...
}
public class AB {
@ManyToOne
@Id
A myA;
@Id
int myB
@ManyToMany
@JoinColum(name="myB")
Collection<B> bs;
@Basic
String value
}
因此,這是基本上A
具有B
的關係,可以有一定的值,該值被存儲在AB
。一個異常現象,即B
存在於多種語言和AB
應該指向他們。有沒有人知道如何使用Hibernate做到這一點(如果可能的話,不用重新構建Db ...我知道可能有更好的設計,但現在這個模式中有相當多的行...)?
我認爲這個問題是在你的模型,它不應該是一個'<- AB -> B'-C',用'C'是多traslations 'B'? – SJuan76
@ SJuan76我擔心這可能是唯一可行的解決方案...... – gapvision