0

私のプロジェクトには単純な継承関係があり、スーパークラスを抽象化したいと思っています。継承するクラスの中には、追加のデータベース情報を必要とするものもありますが、そうでないものもあります。どの継承戦略を使用するかわかりません。

スーパークラスがJOINED戦略で抽象クラスを持つことができるということについて、私は正解を見つけることができないようです。

サブクラスの数が多くなりすぎないように思われます。また、サブクラスのいずれにも多くの追加データがないはずなので、おそらくSINGLE_TABLEで十分です。

理由もなく余分なテーブルを作成したくないので、TABLE_PER_CLASSは不適切です。

ご指導をいただければ幸いです。

ありがとう

4

2 に答える 2

3

サブクラスがテーブルを必要としない場合、私はほとんどの場合、継承に単一のテーブルアプローチを使用します。何らかの理由で、テーブルを必要とするサブクラスの1つに不条理な量の追加フィールド(たとえば10+)がある場合、追加のデータは、一部のサブクラス用に個別のテーブルを作成し、他のサブクラス用にフラットテーブルを作成する必要があることを示している可能性があります。

これがHibernateで具体的にどのようにマッピングされるかはわかりませんが、それをモデル化するための賢明な方法だと思います。

于 2011-03-31T19:49:29.450 に答える
0

この質問に答えるには遅すぎますが、他の人が同様のシナリオを持っている場合は役立つかもしれません。

SingleTable戦略を使用し、サブクラスの1つにフィールド数が多く、別のテーブルが必要な場合は、@ SecondaryTableアノテーションを使用してそのサブクラスをSecondaryTableとしてマークし、PrimaryKeyJoin(これにはアノテーションがあります)を使用してpk列。また、サブクラスのすべてのフィールドは、@columnアノテーションの「table」属性を使用して明示的にsecondaryTableにマップする必要があります。

于 2013-07-18T00:48:24.903 に答える