2


以下のコードは私のオブジェクトモデルであり、これらのエンティティに対して2つのテーブルを作成する必要があります。1つはInheritanceType.JOINED戦略用で、もう1つは戦略用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;
}
}
4

1 に答える 1

0

結合された継承戦略を他の継承戦略と混在させることはサポートされていません。Hibernate は、table-per-class と table-per-subclass 継承の混合のみをサポートします。

于 2012-06-26T11:48:40.153 に答える