2

問題があります。誰かが解決するのを手伝ってくれることを願っています。

私のシステムにはエンティティ「製品」があります。商品には「代替商品」(元の商品の代わりに販売されるはずの商品)を設定できる必要があります。交換品は2種類ご用意しております。製品では、交換製品のいずれか、または両方のタイプを設定できない必要があります。ただし、1 つのタイプにつき 1 つの製品のみを設定する必要があります。これに加えて、製品を見て、この製品を交換製品として持つ他の製品のリストを取得できるようにしたいと考えています。

短縮版:

  • 商品→交換品(2種類、各1個)
  • 製品 -> 置き換えられる製品のリスト (両方のタイプの置き換え)

これまでの私の解決策は、discriminatorvalues を使用して、サブクラス (置換タイプごとに 1 つ) を持つ抽象クラス ReplacementProduct を作成することでした。データベースの replacementproduct テーブルには、次のフィールドがあります: id、replacementproduct、replacementType

さらに、Product エンティティ (置換タイプのサブクラスのインスタンス) に 2 つのフィールドを配置しました。このように、交換タイプの製品から別の製品への一方向リンクを取得しました。

私の問題は、このリンクを双方向にすることです。私が言ったように、問題の製品を交換製品として含む製品のリストを取得できるようにしたいと考えています。

多くのJavaロジックを使用せずにこれは可能ですか?

私はどんな提案にもオープンです。

4

1 に答える 1

0

製品間で双方向の ManyToMany が必要なようです。所有側は、タイプをキーとして使用してマップキー マッピングをセットアップします。反対側はキーを必要とせず、交換できるすべての製品を反映します。これはここで説明されています http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Map_Key_Columns_.28JPA_2.0.29

于 2013-01-31T00:12:48.620 に答える