一部のデータベーステーブルの管理に使用されるJPA/Hibernateコードを維持する必要があります。私はこのようなクラス階層を持っています:
@Entity
@Table(name="table_name")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="column_name", discriminatorType=DiscriminatorType.STRING)
public abstract class AbstractBaseClass {...}
@Entity
@DiscriminatorValue("N")
public class SubClass1 extends AbstractBaseClass { ...}
@Entity
@DiscriminatorValue("Y")
public class SubClass2 extends AbstractBaseClass { ...}
これはすべて正常に機能していますが、データベースが再設計され、識別列が削除され、レコードのタイプがSQLクエリによって決定されます。この再設計は私の考えではなく、データベース構造を制御することはできません。また、既存のコードベースのため、Java階層を変更することも実用的ではありません。すべてが機能し続けるように、DiscriminatorColumn / DiscriminatorValueの代わりに何を使用できますか?