0

私は休止状態でいくつかのクラスをマッピングしています。これらのクラスは基本的に戦略パターンです。抽象メソッド「purchaseSomething()」を宣言する抽象クラス「UserType」を知っているクラス「User」があり、サブクラスはこのメソッドをオーバーライドします。今のところ、すべてのクラスをエンティティとしてマッピングしているため、3 つのテーブルがあります。ユーザーがシステムに送信するたびに、ユーザーを永続化すると、ユーザーの UserType サブクラス インスタンスがテーブルに保存されます。「id」と「type」の2つの列しかない「UserTypes」という単一のテーブルが必要なため、すべての「管理者」ユーザーはテーブルの同じ行を指し、すべての「顧客」ユーザーは「管理者」が既にある代わりに、表の同じ行

ありがとう、どんなヒントも役に立ちます。

4

1 に答える 1

0

純粋なストラテジー パターンの場合は、型を Enum にし、JPAEnumerationアノテーションを使用することを検討してください。Enum 抽象メソッドを指定して、戦略を埋めることができます。

ただし、実際には、管理者と顧客に関するデータを別々に保存する必要があるようです。ユーザーが顧客または管理者であり、両方ではない場合、サブクラスを作成し、 Joined -subclassを使用します。ユーザーが両方である可能性がある場合、1 対 1 の関係マッピングが必要な場合があります。

于 2012-11-17T20:23:20.367 に答える