是否可以通过 OneToOne 关系基于 Hibernate 中的主键属性将子类映射到其超类?我该如何实施?
问问题
374 次
2 回答
2
您可以使用 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)。
于 2011-02-19T19:06:40.203 回答
1
您应该查看Hibernate 参考中的Inheritance Mapping以了解继承映射。
于 2011-02-19T19:09:14.097 回答