如何防止休眠在单表策略中生成与实体一样糊涂的表




下面的代码是我的对象模型,我只需要为这些实体创建两个表。一个用于InheritanceType.JOINED战略,另一个用于InheritanceType.SINGLE_TABLE战略。但不幸的是,Hibernate创建的表就像实体一样糊状。我该怎么办?
提前谢谢。

@MappedSuperClass 
public abstract class EntityObject implements Cloneable, Serializable {
private Long id;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
    return id;
}
public void setId(Long id) {
    this.id = id;
}
}


@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class SuperParent extends EntityObject{
private String lastName;
public String getLastName() {
    return lastName;
}
public void setLastName(String lastName) {
    this.lastName = lastName;
}
}


@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "d_type", discriminatorType = DiscriminatorType.STRING)
public class Parent extends SuperParent {
private String firstName;
public String getFirstName() {
    return firstName;
}
public void setFirstName(String firstName) {
    this.firstName = firstName;
}
}


@Entity
@DiscriminatorValue("Child1")
public class Child1 extends Parent {
private String age;
public String getAge() {
    return age;
}
public void setAge(String age) {
    this.age = age;
}
}


@Entity
@DiscriminatorValue("child2")
public class Child2 extends Parent {
private String hairColor;
public String getHairColor() {
    return hairColor;
}
public void setHairColor(String hairColor) {
    this.hairColor = hairColor;
}
}
不支持将

联接继承策略与其他继承策略混合使用。Hibernate仅支持将每个类的表与每个子类的表继承混合在一起。

相关内容

最新更新