我不能理解Annotation "@NoSqlDiscriminatorColumn“的用法。有没有人能解释一下,如果总是需要的话?若有,原因为何?如果不是,则在单元测试中,Account扩展AccountSuper。这也是继承的另一个例子吗?这与TestInheritanceSingleTable中使用的实体有什么不同?
发布于 2012-10-16 21:31:59
我们必须存储关于哪个子类被保存的信息,以便当我们读回它时,我们使用正确的子类。这些信息存储在一个特定的列中(您告诉我们使用@NoSqlDiscriminatorColumn的是哪一列),所以基本上这个模式添加了一个不在您的实体中的列。使用此模式,您可以将N个子类全部放在同一个表中。
账号扩展AccountSuper没什么特别的。这不是在同一个表中存储不同的实体。这只是存储帐户。碰巧Accounts扩展了AccountSuper,所以它在Account中存储所有字段,在AccountSuper中存储所有字段,因此Account表中的所有行基本上大小都相同。在继承示例中,我们存储不同的实体,因此这些不同的实体可能会导致不同的行长,因为每个实体都有不同数量的列。
https://stackoverflow.com/questions/12915079
复制相似问题