我们有以下类(class)
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) // optional annotation as this is default
@DiscriminatorColumn(name = "apType", discriminatorType = DiscriminatorType.STRING, length = 255)
@DiscriminatorValue("AP")
public class ApplicationProcess {
}
和这个
@Entity
@DiscriminatorValue("APS")
public class ApplicationProcessScheme extends ApplicationProcess {
}
现在,我需要在运行时知道
ApplicationProcess
是否属于DiscriminatorValue
AP or APS
。由于这是jpa自动处理的,因此我无法获取此值。
我们正在调用一个以
ApplicationProcess
作为参数的方法,我想避免使用instanceof
检查它的类型。如果我可以做些类似的事情会更酷applicationProcess.getApType().equals("AP");
最佳答案
您可以将鉴别符映射为只读属性:
public class ApplicationProcess {
...
@Column(name = "apType", insertable = false, updatable = false)
private String apType;
}