前置き DBを使ったプログラムをやってると、全部のテーブルに共通するカラムがあったりします。 例えば作成日時とか最新更新日時とか。 そういう場合にすべてのエンティティクラスでそれらを定義するんではなくて、親クラスで共通なものは定義すると各エンティティの定義が楽になります。 また、その親クラスを継承させておくことで処理も共通化でき、コードをシンプルにすることもできます。 AbstractEntityクラス(エンティティの基底クラス)とSimpleDaoクラス(DB共通処理)の作成例を示します。 エンティティ共通化 共通でこのようなカラムを持たせるものとします(下の例はPostgresql) CREATE TABLE hoge_hoge ( id BIGSERIAL NOT NULL PRIMARY KEY, --ここに各テーブル独自カラム version BIGINT NOT NULL, c