Hibernate 中是否有实用程序可以快速获取继承树中存在的鉴别器值列表?避免在某些 SQL 查询中对其进行硬编码会很有用。
最佳答案
您可以将鉴别器列映射到继承模型基类的一个属性:
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "discriminator", discriminatorType = DiscriminatorType.STRING, length = 255)
public class BaseEntity {
@Column(name = "discriminator", insertable = false, updatable = false)
private String discriminator;
}
更新
在 HQL 查询中,您还可以使用 class 指令:
select e.class, e.id from YourEntity e
对于 SQL 查询,您只能使用预定义的鉴别器列。没有任何实用程序可以帮助您解决此问题。 Hibernate 实用程序针对实体查询(HQL 或 Criteria)。
关于java - 获取 JPA 和 Hibernate 继承树中的鉴别器值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27315865/