私は Hibernate と MySql を使用しています (両方の古いバージョン - Seam 2 プロジェクト)。
マッピング テーブルとエンティティ アノテーションを設定して、2 つのエンティティ間の関係のタイプを「色付け」できるようにする方法がわかりません (グラフのエッジに色を付けるように)。私のスキーマの概算は次のとおりです。
お客様
- ID
- フルネーム
- 電話番号
お店
- ID
- 支店名
- addressFirstLine
- addressSecondLine
customer_store
- 顧客ID
- store_id
- 顧客タイプ
顧客タイプ
- 値 (列挙: 個人、企業、内部)
これらの関係を適切にマッピングするために Hibernate アノテーションとスキーマを設計するための最良のアプローチは何ですか?
私が見たアプローチ:
- オブジェクトに3 つ
Set<Store>
のプロパティ、それぞれに 1 つ、または 1 つのメソッドを持つことができるように感じます。ただし、このマッピングを作成する方法がわかりません。また、この特定のシナリオのドキュメントを見つけるのに苦労しています。Customer
CustomerType
Set<Store> getStores(CustomerType)
customertype
(customer_store_individual
、customer_store_corporate
など)ごとにテーブルを持つようにスキーマを変更できます。これは冗長に感じますが、問題は解決します。ただし、休止状態に魔法をかけてこのマッピングを整理し、これらを 1 つのテーブルに結合することをお勧めします。customer_store
テーブルのエンティティを作成できました。これは本当にひどい回避策のように感じます。 私はこの解決策が好きではありませんが、この回答はすでにこのタイプの関係をカバーしています。
ドメインを難読化しようとしていることに注意してください。そのため、顧客やストア オブジェクト自体について提案することは避けてください。私のドメイン オブジェクトが正しく因数分解され、それらが本当に多対多の関係であると仮定しましょう。私が問題を抱えているのは、各リンクのタイプを区別するだけです:)