2

私は現在EbeanでPlayFramework2を使用していますが、質問はどのJPA ORMにも当てはまるようですので、Hibernate、TopLink、その他のソリューションをお気軽に提案してください。

ソーシャルネットワーク構築のためのいくつかの基本クラスを設計したいと思います。私の意見では、各クラスにID、名前、説明、他のクラスとの関係などの基本的なフィールドがほとんどないクラス階層にする必要があります。フレームワークユーザーは、このクラスを継承し、必須フィールドを追加することでそれらを特殊化できます。例を考えてみましょう:

フレームワーククラス

@MappedSuperclass
class AbstractUser {
    @Id
    Long id;
    String login;
    String password;

    @ManyToMany
    Set<AbstractGroup> groups;
}

@MappedSuperclass
class AbstractGroup {
    @Id
    Long id;
    String name;
}

フレームワーククラスを使用した私のソーシャルネットワーク

@Entity
class MyUser extends AbstractUser {
    String name;
    String surname;
}

@Entity
class MyGroup extends AbstractGroup {
    String groupDescription;
}

ここで必要なのは、AbstractUserクラスとAbstractGroupクラスを、それらの関係を維持しながら、いくつかのフィールドで拡張することです。

JPAがなければ、たとえばジェネリックやDIで解決できます。しかし、JPAでそのようなアイデアを実装するにはどうすればよいでしょうか。出来ますか?

4

0 に答える 0