是否可以根据Hibernate中的主键属性,通过OneToOne关系将子类映射到其超类?我该如何实现呢?
答案 0 :(得分: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)。
答案 1 :(得分:1)
您应该查看Hibernate参考中的Inheritance Mapping以了解继承映射。