1

Hibernate の主キー プロパティに基づいて、OneToOne 関係によってサブクラスをそのスーパークラスにマップすることは可能ですか? どうすればこれを実装できますか?

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 は とcatテーブルdomesticcatの両方に主キーとして存在し、両者の間に外部キーがあります。これにより、1 対 1 の関係が得られます (@OneToOne を使用しません)。

于 2011-02-19T19:06:40.203 に答える
1

継承マッピングを理解するには、Hibernate リファレンスの継承マッピングを参照してください。

于 2011-02-19T19:09:14.097 に答える