7

我正在使用 EclipseLink JPA 实现的 JOINED 继承策略。我注意到 EclipseLink 正在将默认 DTYPE 命名的鉴别器列添加到数据库模式中。我知道,一个表继承策略需要鉴别器,但为什么要加入策略呢?

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

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

4

1 回答 1

2

联接表继承

在连接表继承中,每个类共享来自根表的数据。此外,每个子类都定义了自己的表来添加其扩展状态。以下示例显示了两个表 PROJECT 和 L_PROJECT 以及两个类 Project 和 LargeProject:

...

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

于 2010-01-14T11:45:47.497 回答