【发布时间】:2011-06-30 11:34:43
【问题描述】:
是否可以通过 OneToOne 关系基于 Hibernate 中的主键属性将子类映射到其超类?我该如何实现?
【问题讨论】:
标签: java hibernate inheritance mapping one-to-one
是否可以通过 OneToOne 关系基于 Hibernate 中的主键属性将子类映射到其超类?我该如何实现?
【问题讨论】:
标签: java hibernate inheritance mapping one-to-one
您可以像这样使用 JOINED 继承策略来做到这一点:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Cat implements Serializable {
private int id;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(final int id) {
this.id = id;
}
}
@Entity
public class DomesticCat extends Cat {
private String name;
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
}
这样,id 将在cat 和domesticcat 表中,都作为主键,并且在两者之间有一个外键。这为您提供了一对一的关系(不使用@OneToOne)。
【讨论】:
您应该查看 Hibernate 参考中的 Inheritance Mapping 以了解继承映射。
【讨论】: