0

約7つの同じフィールドを持つ2つ以上のクラスがあり、Java部分では次のようになります:

public abstract class IBase {
   private String commonField1;
   private String commonField2;
   private String commonField3;
   private EMyType type; // type of the object: MY_TYPE_1 or MY_TYPE_2
   // ...

   // + constructor and getters/setters
}

public class BaseImpl1 extends IBase {
   private int base1specific1;
   private int base1specific2;
   // ...

   // + constructor and getters/setters
}

public class BaseImpl2 extends IBase {
   private int base2specific;
   private String base2specific2;
    // ...

   // + constructor and getters/setters
}

2 つの質問があります。

  1. これらの 2 つのオブジェクトをデータベース内に反映する最良の方法は何ですか?
  2. Hibernate 経由でそれらを取得するにはどうすればよいですか?
4

2 に答える 2

1

Morphia を使用すると、インターフェースを @Entity(someCollectionName) でマークします。次に、これらのタイプをクエリする場合、 datastore.createQuery(BaseImpl1.class).filter("classname = ", BaseImpl1.class.getName()) のようなものを使用して、その特定のサブクラスだけを取得します。

于 2013-10-07T14:13:44.870 に答える