私は以下のようなクラスを持っています:
学生 -
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String fName;
private String lName;
private String mName;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "id")
private Set<Phone> phones;
電話 -
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int phoneId;
private int phoneNumber;
したがって、私の Phone テーブルには、Student テーブルを参照する外部キーがあります。ここで create を実行すると、Student テーブルと Phone テーブルの各行で正常に動作します。
しかし、後で生徒にmnameを追加するなどの更新を行うと、電話テーブルに最初の行と同じデータを持つ別の行が作成されますが、2番目の行には電話テーブルと最初の行の外部キーへの参照が含まれます無効です。
上記のスキーマをそのまま維持したい。実際に変更があった場合にのみ、Phone テーブルに行を作成したいと考えています。どうすればこれを達成できますか?ご意見をお聞かせください。
ありがとう