簡體   English   中英

如何防止Hibernate在單表策略中生成像實體一樣混亂的表?

[英]How to prevent Hibernate to generate tables as mush as Entities in single table strategy?


下面的代碼是我的對象模型,我需要為這些實體創建兩個表。 一個用於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僅支持按類繼承表與按子繼承表的混合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM