2017-07-03 11 views
0

サブクラスエンティティで使用するスーパークラスEntity内に列定義を持たせることは可能ですか?Hibernateを使用して親エンティティを使用して子エンティティに列を割り当てる

私は「スーパービジネス」から継承したさまざまなタイプの「ビジネス」を表すためにサブテーブルごとの階層を採用しました。したがって、各ビジネスタイプはデータベース内に独自のテーブルを持ち、すべてのビジネスタイプに共通する情報を含む汎用の「ビジネス」テーブルもあります。

これらの各ビジネスには、同じタイプの別のビジネスを指す「parent_id」という外部キー列があります(ビジネスは同じタイプの他のビジネスに属することができる)。つまり、私のビジネスタイプクラスにはそれぞれ、対応するgetterとsetterを持つ独自の 'parent'属性があります。

「スーパービジネス」で「親」属性(ゲッターとセッターと一緒に)を宣言するためにジェネリックスを使用して、あらゆるタイプのビジネスではなく、すべてのビジネスに対して一度書き込むことができます。

私はこのようになりますこれは、私の「スーパービジネスのクラスと私のビジネスのタイプ 'クラス間の新しい@MappedSuperclass(CommonBusiness)にこのようなものを置くことによってこれに近いものを達成:

SuperBusiness > CommonBusiness > (BusinessType1, BusinessType2, BusinessType3) 

しかし、私は間に 'CommonBusiness'クラスなしでこれを行うことが可能かどうかを知りたいです。

として私の元の質問を言い換えることができます?は、彼らがMappedSuperClassからであるかのように、子エンティティは、いくつかの列を扱うように、スーパークラスのエンティティの列を定義することが可能です」

(私が見てきましたどこにでも、私はこのようなものだろう何でもそれは申し訳ありませんが、私に属していないため、また、私は、コードを投稿することはできません)

+0

することができます残念!コードを投稿する! –

答えて

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> { 
... 
} 
関連する問題