0

次のことを考えてみましょう。

@Entity
@Table(name="person")
public class Person implements Serializable {

  @Id
  @GeneratedValue
  @Column(name="id")
  private int id;

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

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

  ...getters/setters...

}

@Entity
@Table(name="car")
public class Car implements Serializable {

  @Id
  @GeneratedValue
  @Column(name="id")
  private int id;

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

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

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

  ...getters/setters...

}

ユーザーがサブスクライブして、名前、姓、車のブランド、車のモデルなどの個人情報を入力するとします。

その人の個人情報を車の情報と同じテーブルに格納したくありません。

また、 で車の情報を取得できるようにしたいと考えています。これが、Car クラスにpersonIdある理由です。personId

これを実現するには、どの注釈を使用すればよいですか? Car明らかに、テーブルに制約が必要でありpersonId、外部キーを作成しますよね? 最善の方法は何ですか?

いろいろ見てきたけどどれがいいの?

4

2 に答える 2

0

それはあなたの要件に依存します。複数のユーザーに同じ車両を使用する場合は、それをエンティティにし、多対多の関係を使用する必要があります。

エンティティ構造をまったく変更したくないが、データベース マッピングだけを変更したい場合は@SecondaryTable@SecondaryTables注釈を見て、エンティティのテーブルをさらに定義し、各列に使用するテーブルを指定する必要があります (それ以外の場合は割り当てられます)。メインテーブルへ)。

于 2013-01-27T06:52:47.613 に答える