0

person と country の 2 つのテーブルがあります。

国は、「シンガポール」、「アメリカ」など、すべての国を含むテーブルです。person はすべてのユーザーを含むテーブルであり、名前、居住国などを格納しています。

データベース テーブルは次のようになります。

person
person_id int PK
name varchar(20)
country_id int FK

country
country_id int PK
country varchar(20)

次のようなクラス ダイアグラムを作成しようとしています。しかし、Person クラス内の変数 Country に対してどのような関係を示せばよいかわかりません。

@Entity
@Table(name=person)
class Person{
    @Id
    @Column(name="person_id")
    @GeneratedValue(strategy=GeneratedType.IDENTITY)
    private int personId;

    @Column(name="name")
    private String name;

    @ ?
    private Country country;

    // Accessor and Mutator
}

@Entity
@Table(name=country)
private Country{
    @Id
    @Column(name=country_id)
    @GeneratedValue(strategy=GeneratedType.IDENTITY)
    private int countryId;

    @Column(name="country")
    private String country;

    // Accessor and Mutator
}
4

1 に答える 1

0

Person には Country の外部キーが含まれている必要があります。

これにより、Person が 1 つの (居住) 国に属するという関係が作成されますが、国は (もちろん) より多くの Person をその国に属することができます。これは、多対 1 の関係と呼ばれます (国から見た場合)。

于 2013-08-24T06:06:16.583 に答える