0
我有三個實體,例如A, B, C
。實體A
是B
的父項,加入了繼承類型。實體B
聚合具有ManyToOne關係的實體C
。 結構看起來像未來:JPA鏈接字段值
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
class A {
String str;
String cStr;
}
@Entity
class B extends A {
@ManyToOne
C c;
}
@Entity
class C {
String str;
}
我不知道是否有可能在所有的實體水平,但是,我需要從C
鏈接的str
價值的申請A.cStr
。它應該如下所示:我創建的實體B
的填充值爲c
,將其存儲並將值從C.str填入A.cStr
。當我從數據庫中取A時,我可以看到A.cStr
與C.str
具有相同的值。
嗨,謝謝你的回覆。 「當然,不是B實例的A的實例不會有任何CString。」完全同意它,在這種情況下,A.str具有默認值。但如果它是B的實例,它可能會被C.str的值所超越。這是我的任務。 – Marian
但按照你的建議,我可以在B實體中添加額外的邏輯到setC中,在那裏我可以填充A.cStr。所以再次感謝您的評論,它真的幫助了我。 – Marian
再一次,你不需要A中的一個字段來做到這一點。只依賴多態。在A中從'getString()'返回'this.str',並覆蓋B中的方法返回'c.getStr()'。 –