Java 获取JPA和Hibernate继承树中的鉴别器值列表

Java 获取JPA和Hibernate继承树中的鉴别器值列表,java,hibernate,jpa,inheritance,orm,Java,Hibernate,Jpa,Inheritance,Orm,Hibernate中是否有实用程序可以快速获取继承树中存在的鉴别器值列表?避免在某些SQL查询中硬编码是很有用的。您可以将鉴别器列映射到继承模型基类的一个属性: @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "discriminator", discriminatorType = DiscriminatorType.STRING, length = 255) pu

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或标准)。

我明白了。在我的例子中,我有一个SQL查询(不是HQL),其中我必须根据适当的鉴别器选择项。我不想依赖于硬编码,因为我可能会添加一个新的子对象,而忘记将其添加到SQL查询中。这就是我的问题。