2017-07-03 51 views
0

是否有可能在超類實體中有一個列定義供子類實體使用?使用Hibernate將列分配給使用父實體的子實體

我已經採用了每個子類的層次結構來表示從「超級商業」繼承的不同類型的「商業」。因此,每種業務類型在數據庫中都有自己的表格,並且還有一個通用的「業務」表格,其中包含所有業務類型通用的信息。

這些業務中的每一個都有一個名爲'parent_id'的外鍵列,指向另一個相同類型的業務(因此業務可以屬於同一類型的其他業務)。這意味着我的每個業務類型類都有自己的具有相應getter和setter的「parent」屬性。

我想使用泛型在'超級商業'中聲明一個'父'屬性(以及getter和setter),這樣它就可以針對所有業務寫入一次,而不是針對每種類型的業務寫入一次。

SuperBusiness > CommonBusiness > (BusinessType1, BusinessType2, BusinessType3) 

但是:

我通過把這種東西放進了一個新的@MappedSuperclass(CommonBusiness)我的「超級企業」級和我的「業務類型」階級之間,它看起來像這樣取得了一些接近這個我想知道是否可以在沒有「CommonBusiness」類的情況下做到這一點。

我原來的問題可以表述爲:是否有可能在超實體定義列,這樣子實體對待某些列,如果他們是從MappedSuperClass「

(我已經看了?無處不在,也沒有發現什麼我也不能發佈代碼,因爲它不屬於我,對不起)

+0

可惜你可以」 t發佈代碼! –

回答

0

我會做這樣的事情:!

public class SuperBusiness<T extends SuperBusiness> { 
    protected T parent; 
... 
} 

public class CommonBusiness<T extends SuperBusiness> extends SuperBusiness<T> { 
... 
} 

public class BusinessType1 extends CommonBusiness<BusinessType1> { 
... 
} 

public class BusinessType2 extends CommonBusiness<BusinessType2> { 
... 
} 

public class BusinessType3 extends CommonBusiness<BusinessType3> { 
... 
} 
相關問題