为什么EclipseLink为连接的继承策略添加了鉴别器列?

时间:2010-01-14 10:44:59

标签: jpa eclipselink

我正在使用带有EclipseLink JPA实现的JOINED继承策略。我注意到EclipseLink正在将鉴别器列(默认为DTYPE)添加到数据库模式中。我明白,一个表继承策略需要一个鉴别器,但为什么JOINED策略?

EclipseLink需要此列,因为删除它后我遇到了错误。是否出于性能原因添加了此列?我对此并不特别高兴,因为从数据库模式的角度来看,这一列只是不必要的混乱。

基于Hibernate的JPA没有做任何类似的事情。

1 个答案:

答案 0 :(得分:1)

来自Joined Table Inheritance

  

在连接表继承中,每个   class共享根表中的数据。   另外,每个子类定义它   自己的表添加其扩展   州。以下示例显示了两个   表,PROJECT和L_PROJECT   作为两个班,项目和   LargeProject:

     

...

鉴别器列是决定类型的因素,因此决定了连接表的用途,因此您需要父表中的鉴别器列。