【发布时间】:2015-02-03 14:55:19
【问题描述】:
Hibernate 中是否有一个实用程序可以快速获取存在于继承树中的鉴别器值列表?避免在某些 SQL 查询中对此进行硬编码会很有用。
【问题讨论】:
标签: java hibernate jpa inheritance orm
Hibernate 中是否有一个实用程序可以快速获取存在于继承树中的鉴别器值列表?避免在某些 SQL 查询中对此进行硬编码会很有用。
【问题讨论】:
标签: java hibernate jpa inheritance orm
您可以将鉴别器列映射到继承模型基类的一个属性:
@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)。
【讨论】: