1

以下はクラス定義です

インターフェース

public interface myInterface{

    void myMethod1();

}

MyClass1 上記のインターフェースを実装するクラス

 @Entity
 public class MyClass1 implements MyInterface{

    @Id
    private int id;
    private String field1;
    private String field2;

    // Getter and setter

}

上記のインターフェースを実装する MyClass2 クラス

 @Entity
 public class MyClass2 implements MyInterface{

    @Id
    private int id;
    private String field3;
    private String field4;

    // Getter and setter

}

最後に、型パラメータを持つリストを持つエンティティ クラスです。

@Entity
public class MyClass{

    @Id
    priviate int id;
    private String field5;
    private String field6;
    private List<? extends MyInterface> mylist;

    //getter and setter

}

私が見ている生成されたクラスは、次のようになります。

MyClass テーブル

-------------------------
id | field5 | field6
-------------------------
1  | abc    | def
2  | abc    | def
3  | abc    | def

MyClass1 テーブル

-------------------------
id | field1 | field2 | myclass_fk
-------------------------
1  | abc    | def    | 2
2  | abc    | def    | 2
3  | abc    | def    | 1

MyClass2 テーブル

-------------------------
id | field3 | field4 | myclass_fk
-------------------------
1  | abc    | def    | 3
2  | abc    | def    | 1
3  | abc    | def    | 1

targetType を MyInterface に指定してリストで使用しようとし@OneToManyましたが、エンティティ クラスではなくエラーで失敗しました。

編集

Hibernate OGM、できればグラフまたは Mongo (ドキュメント) ベースを使用して実現できますか?

4

2 に答える 2