1

是否可以通过 OneToOne 关系基于 Hibernate 中的主键属性将子类映射到其超类?我该如何实施?

4

2 回答 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 将同时在表catdomesticcat表中,都作为主键,并且在两者之间有一个外键。这为您提供了一对一的关系(不使用@OneToOne)。

于 2011-02-19T19:06:40.203 回答
1

您应该查看Hibernate 参考中的Inheritance Mapping以了解继承映射。

于 2011-02-19T19:09:14.097 回答