テーブルが 2 つではなく 1 つしかない場合は、「結合」を回避できるため、読み取りが高速になります。ただし、追加の「dtype」列といくつかの空の列があるため、より多くのスペースを使用します。
例を見てみましょう。モデルは次のとおりです (JPA アノテーションなし)。
public abstract class Like {
public Long id;
public String foo;
}
public class PostLike extends Like {
public String post;
}
public class TopicLike extends Like {
public String topic;
}
テーブルを取得しますLike
:
----------------------------------
|dtype | id | foo | topic | post |
----------------------------------
|post | 1 | a | NULL | p1 |
|topic | 2 | b | t1 | NULL |
----------------------------------
ご覧のとおり、"PostLike" アイテムの場合、"topic" 値は NULL になります。
しかし、最近では、実際の問題ではないにしても、ディスク容量が問題になっています。
単一テーブルの継承で見られる唯一の欠点は、多くのプロパティがある場合に列の数が膨大になる可能性があることです。また、モデルに新しいプロパティ/列を追加するのが難しくなります (DB の進化を適用する必要がある場合)。 .
また、知る限り、eBean は「単一テーブルの継承」のみをサポートしています。