2009-08-05 13 views
0

私は次のシナリオを扱っています:Hibernateの「テーブルレス」列挙型マッピング?

私たちは具体的なテーブルのプライマリキーを意味し、table-per-subclass inheritanceを使う抽象テーブルに外部キー参照です。スーパークラスは、製品で、サブクラスは、ブック、DVDは、Javaスーパークラスで今...、

をAudioCDのあるProduct.javaを言う、我々は製品の種類のenumを持っている:書籍、DVDを、音楽など

抽象テーブルには弁別子列がなく、種類のための余分なテーブルはありません。

は、それが具体的なオブジェクトに応じて、正しい値にProduct.javaタイプenumをマッピングすることは可能ですか?あるいは、弁別者や余分なテーブルが必要ですか?

... ....サブクラスの継承マッピング抜粋あたり

表:

<class name="Product" table="PRODUCT"> 
    <id name="id" column="IDPRODUCT" type="int"> 
     <generator class="native" /> 
    </id> 
    ... 

    <joined-subclass name="Book" table="BOOK"> 
     <key column="IDPRODUCT" /> 

     <property ... 

    </joined-subclass> 
... 

... ...

Product.java

​​

は奇妙に聞こえますか?多分。 2つの別個の当事者がOO部分とDB部分を設計しました...

答えて

4

私は何かが不足しているかもしれませんが、なぜあなたはフィールドとしてTypeを持っていますか? ProductgetType()抄録を作成し、それをサブクラスで実装して適切な値を返します。