1

我无法理解注释“@NoSqlDiscriminatorColumn”的使用。有人可以解释一下是否总是需要吗?如果是,为什么?如果不是,那么在单元测试中,Account 扩展了 AccountSuper.. 这也是继承的另一个例子吗?这与 TestInheritanceSingleTable 中使用的实体有什么区别?

4

1 回答 1

1

我们必须存储保存了哪个子类的信息,因此当我们重新读取它时,我们使用正确的子类。此信息存储在特定列中(您告诉我们使用@NoSqlDiscriminatorColumn 的列),所以基本上这种模式添加了一个不在您的实体中的列。使用这种模式,您可以在同一个表中拥有 N 个子类。

帐户扩展 AccountSuper 没什么特别的。那不是在同一个表中存储不同的实体。那只是存储帐户。它只是发生 Accounts 扩展 AccountSuper ,因此它存储 Account 中的任何字段和 AccountSuper 中的任何字段,因此基本上 Account 表中的所有行通常大小相同。在继承示例中,我们存储了不同的实体,因此这些不同的实体可能会导致不同的行长度,因为每个实体都有不同的列数。

于 2012-10-16T13:31:59.247 回答