2012-03-31 16 views
1

3つの分野で交通テーブルを考えてみましょう:エンジンと車輪がnull以外と翼の場合はエンジンホイールの翼休止状態:同じテーブルに複数のクラスをマッピング

私は場合Vehicleクラス にこれをマッピングしたいその後、nullですEngineとWingsがnullでなく、ホイールがnullの場合、これをPlaneクラスにマップしたい

私はサブクラスを区別するためにディスクリミネータについて読んでいますが、私が読んだ例でも、弁別値に変換する。したがって、私は上記のシナリオにどのように取り組むことができるのだろうか? 別々のマッピングを実装するだけですか?私はもっ​​とうまく方法を見つけることを望んでいた。

おかげ

編集はもう一度リファレンスガイドを見たことが、ヌルではなく、nullは有効な値であることを気づきました。だから私の問題を解決するこのように見える。確認するためにこれを少し開いたままにします。ありがとう!

答えて

1

PlaneクラスとVehicleクラスの抽象親クラスを作成し、@DiscriminatorFormulaを使用して、後でPlaneおよびVehicleサブクラスの@DiscriminatorValueとして注釈を付けることができる値を生成する式を作成できます。

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/example-mappings.html#example-mappings-content-discrimination

:(この例では、マッピングのためのXMLを使用していますけれども、それは基本的に、注釈のために同じことだ、)

Hibernateのドキュメントで、この例を見てみましょう