0

Hibernate マッピングの実行に問題があります。シナリオは次のとおりです。

  1. ユーザー名、名前、生年月日、画像、およびユーザー名を主キーとするユーザーに関するその他の情報を持つ User クラスがあります。
  2. 2 番目のクラスは、製品 ID と、主キーを製品キーとする製品に関連するその他の情報を持つ製品クラスです。
  3. 3 番目のクラスは、OrderId、OrderDate、Username を持つ Order クラスです。1 つの注文に多くの製品を含めることができるため、User クラスのユーザー名と最後に Product 型の Set を参照する外部キーである必要があります。

ここで、Order クラスの主キーを複合キー (OrderId、ProductID) として使用し、この productID を Product クラスから参照する必要があります。

作成したい関係は次のとおりです。 1. 1 つの注文は 1 人のユーザーにのみ属することができます 2. 1 つの注文は多くの製品を持つことができます

誰かがそれをどうやって進めるか教えてもらえますか? どんな種類の助けも素晴らしいでしょう。

4

1 に答える 1

0

私はあなたが同様の関係を考えている可能性が最も高いと思います。要件の違いは、Order/PurchaseOrder から Product/Item への 1 対多のマッピングが必要であり、Shipment が必要ないことです。

私の提案は次のとおりです。

  1. ユーザーと注文の双方向の一対多の関係を作成します。双方向の利点は、Order オブジェクトから User オブジェクトにアクセスできることです。必要でない場合は、User から Order への一方向のままにしておくことができます。
  2. Order と Product の 1 対多の関係を作成します。
  3. 複合キーの代わりに、主キーを OrderID のままにします。注文オブジェクトから製品のリストを取得し、ユーザー オブジェクトから注文オブジェクトを取得することもできます。

この決定を下す際のポイントは、残りのオブジェクトをどのオブジェクトから派生させるかです。ORMを使用すると、どのオブジェクトから残りを派生させるかを知る必要があるため、私の提案は、添付されたエンティティとしてユーザーオブジェクトを使用できるという仮定に基づいているため、注文のリスト(セットとして定義)を取得し、特定の注文から見つけることができます製品のリスト/セット。

Order オブジェクトを最初に利用できる場合は、User で双方向を作成します。一方の端で製品のリスト/セットを見つけ、もう一方の端で関連付けられた顧客を見つけることができるようにします。

ORM マッピングについては、Hibernate Mapping Examples を参照してください。

これが明確になることを願っています。

于 2013-11-13T07:54:21.420 に答える