2

私は一般的にHibernateとORMに不慣れです。

説明、価格、バーコード、その他の製品ジェネリックなどのプロパティを保持する製品エンティティがあります。

次に、他の製品固有のデータを管理したいと思います。たとえば、レンズ、サイズなどの情報を含むサングラスエンティティと、形状、バッテリー持続時間などに関連するその他の詳細を含む時計エンティティを想像できます。

どちらがより良い戦略ですか?「非ORM」の世界では、次のようになります。

  • 2つのテーブル:時計とサングラス、重複したフィールド

  • 1つのテーブル:時計とメガネのすべてのプロパティを含む「製品」とフィールド「kindOfProduct」

Hibernate / JPAでそれをモデル化するにはどうすればよいですか?

4

2 に答える 2

1

より一般的にして、1つの製品クラスを作成し、各製品に「製品機能」のリストを含めることはどうでしょうか。

これは、多対多の関係を介してマッピングでき、必要な数の異なるタイプの製品や機能を追加できるようになります。

各製品には引き続き製品タイプフィールドがあるため、扱っている製品のタイプがわかります。

于 2012-12-17T10:41:03.367 に答える
1

主に3つの継承戦略から選択できます。質問で言及した2つに加えて、共通の属性を基本テーブルに格納し、特定のプロパティを特殊なテーブルに格納する混合1つ。

しかし、この情報だけでは、各戦略で達成できることにはルールと制約があるため、アドバイスを与えるのは少し難しいです。このトピックに関するHibernateのドキュメントを読み、自分で実験することから始めることをお勧めします。

http://docs.jboss.org/hibernate/stable/orm/manual/en-US/html_single/#d0e7071

于 2012-12-17T11:09:59.447 に答える