0

SINGLE_TABLE 継承に親エンティティServiceと子ExtendedServiceがあります。

3 番目のエンティティServiceCollectorには、エンティティService と ExtendedService の両方を含める必要があります。これは固定要件であり、この設計ではポリモーフィズムを使用して実現できます。

問題: 親クラスの Service のみを取得する必要があることが非常に多いため、識別子の列でクエリを実行します...これは私の目的にとって悪い設計だと思います。そうではありませんか?

これは単純な例です。実際、私は多くの Service サブクラスを持っています。たとえば、さまざまな製品を販売するショップでは、各製品が異なるプロパティを持つことができると考えてください。

前もって感謝します。

4

1 に答える 1

1

すべての ExtendedService が Service のクエリへの応答として有効でない場合は、ポリモーフィズムではなく、継承によるテンプレートを使用しているように聞こえます。AbstractService簡単な修正は Service を抽象化することです。そのため、それServiceを拡張してDiscriminatorValue. (その後、ExtendedService は AbstractService を拡張するなど)

他のすべてが正常に機能している場合、識別子列をクエリにマッピングしても、世界の終わりではありません。個人的には、「悪いデザイン」よりも「エレガントでない」方にファイルしますが、それは単なる意見です.

于 2010-08-20T23:02:05.793 に答える