Java 如何将JPA中的一系列鉴别器值与“策略”一起使用;单表;?
我有一个叫做“班纳”的父亲阶级,还有很多从他那里继承下来的阶级。 所有在鉴别器值中以相同数字开头的类都具有相同的属性,然后我想使用相同的类来对它们进行初始化 我的实际代码是这样的:Java 如何将JPA中的一系列鉴别器值与“策略”一起使用;单表;?,java,jpa,Java,Jpa,我有一个叫做“班纳”的父亲阶级,还有很多从他那里继承下来的阶级。 所有在鉴别器值中以相同数字开头的类都具有相同的属性,然后我想使用相同的类来对它们进行初始化 我的实际代码是这样的: @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(discriminatorType = DiscriminatorType.INTEGER) @DiscriminatorValue("20001")
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.INTEGER)
@DiscriminatorValue("20001")
public class IndexGallery extends Banner{
但我想要这样的东西,因为它更一般:
....
@DiscriminatorRange("20000-29999")
public class Gallery extends Banner{
....
@DiscriminatorRange("30000-39999")
public class FooBanner extends Banner{
另一方面,可以创建一个自定义规则来区分?像常规表达式一样?您可以使用
@DiscriminatorFormula
。以个人为例:
@DiscriminatorFormula("case when age is null then 0 else age end")
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name="person_id")
private int personId;
@Column(name="name")
private String name;
@Column(name="age")
private Integer age;
}
Hibernate有一些关于它的文档“分组”的目的是什么?鉴别器定义它所涉及的类,而不是它所拥有的子类。如果您希望能够查询所有子类,则在查询机制中不使用此标志。我希望使用鉴别器来确定类。在类中,我希望使用相同的鉴别器来确定ID,用户说他在哪里使用Hibernate?@NeilStockton我做了一个假设。。。我认为hibernate为此提供了一个干净的(可能是唯一的)解决方案