アノテーション「@NoSqlDiscriminatorColumn」の使用法を理解できません。それが常に必要かどうか誰かが説明できますか?はいの場合、なぜですか?いいえの場合、単体テストで、AccountはAccountSuperを拡張します。これも継承の別の例ですか?これとTestInheritanceSingleTableで使用されるエンティティの違いは何ですか?
1 に答える
1
どのサブクラスが保存されたかに関する情報を保存する必要があるため、それを読み戻すときに、正しいサブクラスを使用します。この情報は特定の列に格納されるため(@NoSqlDiscriminatorColumnでどの列を指定するか)、基本的にこのパターンはエンティティにない列を追加します。このパターンでは、N個のサブクラスをすべて同じテーブルに含めることができます。
AccountSuperを拡張するアカウントは特別なことではありません。これは、同じテーブルに異なるエンティティを格納することではありません。それはアカウントを保存するだけです。AccountsはAccountSuperを拡張するため、AccountのすべてのフィールドとAccountSuperのすべてのフィールドが格納されるため、基本的に、Accountテーブルのすべての行は通常同じサイズになります。継承の例では、さまざまなエンティティを格納しているため、それぞれの列の数が異なるため、これらのさまざまなエンティティの行の長さはおそらく異なります。
于 2012-10-16T13:31:59.247 に答える