2011-08-05 7 views
0

ここで3つのクラスがある:タイプ= 1 = Aとタイプ= 2 BでどのようにiがAbstractClassとしてこれらのオブジェクトをフェッチすることができることを意味し、具体的なクラスのときタイプであることを意味する場合、データベース内jpa(休止状態)で分類されたオブジェクトをフェッチする方法は?

abstract class AbstractClass{@Column("type") public int type;......} 
class A extends AbstractClass{......} 
class B extends AbstractClass{......} 

は、 type = 2のとき1とB?

ありがとうございました。

答えて

1

データベースの構造によって異なります。クラス階層全体で1つのテーブルを使用している場合は、table per class hierarchyのHibernateドキュメントを参照してください。 1つのテーブルを使用して共通フィールドをAbstractClassに格納し、各サブクラスのテーブルを使用する場合は、Mixing table per class hierarchy with table per subclassのドキュメントを参照してください。どちらの場合も、descriminator(あなたの場合は型の列)を定義することになります。

+0

thx私はそれを試してみます。 – Gang

+0

私の喜び。それがどのように行ったのかを報告し、必要に応じて回答/アップヴォートを授与することを忘れないでください。 – joostschouten

0

hereと記載されている「クラス階層ごとに1つのテーブル」の継承マッピングを使用する必要があります。弁別子列の明示的なマッピングは可能ですが、必須ではありません。