我必须维护一些用于管理一些数据库表的 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 以便一切继续工作?