我正在使用带有EclipseLink JPA实现的JOINED继承策略。我注意到EclipseLink正在将鉴别器列(默认为DTYPE)添加到数据库模式中。我明白,一个表继承策略需要一个鉴别器,但为什么JOINED策略?
EclipseLink需要此列,因为删除它后我遇到了错误。是否出于性能原因添加了此列?我对此并不特别高兴,因为从数据库模式的角度来看,这一列只是不必要的混乱。
基于Hibernate的JPA没有做任何类似的事情。
答案 0 :(得分:1)
在连接表继承中,每个 class共享根表中的数据。 另外,每个子类定义它 自己的表添加其扩展 州。以下示例显示了两个 表,PROJECT和L_PROJECT 作为两个班,项目和 LargeProject:
...
鉴别器列是决定类型的因素,因此决定了连接表的用途,因此您需要父表中的鉴别器列。