0

下記の問題で大変困っております。コード内の2つの異なる場所で使用するエンティティ「ホーム」があります。問題は、このエンティティが使用されたクラスに応じて異なるテーブルにマップする必要があることです。

Class1 と Class2 の 2 つのクラスがあると仮定します。どちらのクラスにも「ホーム」タイプの属性があります。ここで、class1 内の属性をテーブル「CLASS1_HOME」にマップし、class2 の属性をテーブル「CLASS2_HOME」にマップする必要があります。

たとえば、クラス「Home」に「MappedSuperClass」を使用し、クラス「home」からすべての属性を継承するさらにクラス「Second_Home」を作成することで、これが可能であることを知っています。しかし、私の質問は、家の属性は変わらず、「継承」ソリューションは一種の「汚い」ものだと思うので、継承なしでこれに可能性があるかどうかです。また、アノテーションのみを使用してこれを行いたいと考えています。

私が説明したようにそれを行う方法はありますか?

4

1 に答える 1

0

継承を使用したくない場合、および HOME を CLASS1_HOME と CLASS2_HOME テーブルの両方に同じ方法で保存している場合は、次のようにすることをお勧めします。

public class Home{
boolean Class1;
}

この場合、永続化すると、これが Class1 用かどうかを簡単に判断できます。また、必要に応じて、データベースに保持されているフラグに基づいて、CLASS1_Home と CLASS2_Home の 2 つのビューを作成できます。

于 2012-09-28T14:40:17.880 に答える