0

質問がかなりややこしいので、以下に詳しく説明します。

ドメイン オブジェクト User があります (データベースにそれぞれの User テーブルがあります)。User を拡張する別のドメイン Investor (データベースにそれぞれの Investor テーブルがある) があります。ユーザーの userType='I' の場合、ユーザーは投資家になることができます。

<entity class="User" >
   <table name="domain.Users" />
   <discriminator-column name="user_type" discriminator-type="STRING"/>
</entity>

user_type をそれぞれのドメインとテーブルにマップする必要があります。

<entity class="domain.Investor" >
  <table name="domain.Users" />
  <discriminator-value>I</discriminator-value>
</entity>

上記のコードでは、識別子の値がユーザーのテーブル用であるため、テーブル名をデータベースの Investor テーブルに変更できません。Users テーブルの識別子の列が I である xml コードが必要ですが、独自のテーブル Investor が必要です。

4

1 に答える 1

0

Investor は、必要に応じて、結合されたテーブルの継承構造で User テーブルと独自の Investor テーブルの両方を使用できる必要があります。これは、User の各行が User エンティティまたは User サブクラスを表し、実際には Investor である各 User が Investor テーブルにも行を持つように機能します。継承の設定方法の簡単な例については、http://wiki.eclipse.org/EclipseLink/Examples/JPA/Inheritanceを参照してください<inheritance strategy="JOINED"/>。使用する JPA 継承タイプを指定する User のタグがありません。

于 2013-09-17T12:46:01.523 に答える