0

JPAでは、次のような関係をモデル化する方法はありますか?

人
   INT id PKEY
   VARCHAR名

子
   INT parentId FKEY(PERSON-> id)
   INT nameId FKEY(PERSON-> id)

は多parentId対1の関係でnameIdあり、1対1の関係です。それで、本質的に、parentIdそしてnameIdCHILDで複合主キーを作成しますか?

ありがとう!

4

2 に答える 2

1

名前をに変更nameIdchildIdます。論理的には、人とその子供との間に関係があります。それぞれの子供が人自身であるところ。現在使用しているモデルでは、個別のテーブルを作成する理由はありませんが、child後で個別の属性を追加するとします。継承と集約を使用して関係をモデル化します。

@Entity
@Table(name="PERSON")
@Inheritance(strategy=InheritanceType.JOINED)
public class Person implements Serializable {
    @Id
    private Integer id;

    private String name;

    @OneToMany(mappedBy = "parent")
    private List<Child> children;
}

@Entity
@Table(name="CHILD")
@PrimaryKeyJoinColumn(name="nameId", referencedColumnName = "id")
private class Child extends Person implements Serializable {
    @ManyToOne
    @JoinColumn(name = "parentId", referencedColumnName = "id")
    private Person parent;
}

これはサンプルコードであり、逐語的に入力されています。自分でエラーチェックする必要があります。しかし、それは出発点です。

于 2012-12-17T16:29:16.567 に答える
0

シナリオのエンティティを作成できます。ただし、テーブルの設計は nameId である必要があり、エンティティ クラスの作成に問題がある場合は、NetBeans IDE または Eclipse IDE でエンティティ クラスを作成するための「テーブルからのエンティティ クラス」のオプションがあります。

于 2012-12-18T08:26:00.167 に答える