0

我有 2 个以上的类,它们大约有 7 个相同的字段,在 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
}

我有两个问题:

  1. 在数据库中反映这两个对象的最佳方法是什么?
  2. 我应该如何通过 Hibernate 检索它们?
4

2 回答 2

1

使用 Morphia,您将使用 @Entity(someCollectionName) 标记您的界面。然后,当您查询这些类型时,您有类似 datastore.createQuery(BaseImpl1.class).filter("classname = ", BaseImpl1.class.getName()) 的东西来检索那个特定的子类。

于 2013-10-07T14:13:44.870 回答
0

我将解决问题 3。其他问题是非常笼统的问题。

在 mongo 中,您将事物(文档)存储在集合中。没有模式或表。您可以将两个子类型存储在同一个集合中,并查询它们的公共属性或子类型属性。当从数据库中反序列化它们时,您可以根据它们具有的属性集计算出如何对它们进行反序列化。

于 2013-10-07T11:48:30.413 回答