Tag: 单表inheritance

如何将@UniqueConstraint与单表inheritance(JPA)一起使用?

我有一个类使用单表策略扩展现有实体(我无法更改)。 我想为该实体使用UniqueConstraint,所以我试过: @Entity @Table(name = “t_document”) public class Document implements Serializable { … } 和 @Entity @Table(uniqueConstraints = { @UniqueConstraint(name = “Test”, columnNames = { … }) }) public class MyDocument extends Document { … } 根本没有使用唯一约束,日志文件中没有任何内容。 这是在这种情况下使用UniqueConstraints的正确方法吗? (我们使用JPA2,JBoss 7.1)

如何在运行时获取DiscriminatorValue

我们有以下课程 @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”);