2017-02-06 7 views
0

2つのクラスに同じフィールドが必要ですが、少し異なる動作があり、そのうちの1つは他のフィールドを持っていますが、もう1つはありません。特別なフィールドを持たない派生クラスをマップする必要がありますか? ここでは、クラスAとクラスBを持っていて、両方ともコレクション(例えばCオブジェクト)と他のフィールドDを持っていなければならないとしましょう。そのため、抽象クラスABを作成します。フィールドなしの派生クラスのHibernateマッピング

abstract class M { 
    //fields, getters, etc 
    public void someMethod(){ 
    //doSmth 
    } 
} 

abstract class AB extends M { 
    private D d; 
    private Set<C> cs; 
    //getters, setters, etc 
} 

class A extends AB{ 
    @Override 
    public void someMethod(){ 
     for(C c : cs){ 
     //doSmth 
     } 
    } 
} 

class B extends AB { 
    private String text; 
    //getters etc 
} 

だから、私は間違いなくM、ABとBをマップする必要がありますが、私はAをマップする必要がありますない、とそれらのすべてがのsomeMethod(持っているMの子孫、)です - 文字列フィールド、クラスAを持っています?

P.S.

答えて

1

Hibernateがクエリ結果としてList<A>を返すようにしたい場合は、Aをマップする必要があります。

関連する問題