両方が主キーを共有する別のエンティティと 1 対 1 の関係を持つエンティティの単純な休止状態の例が必要です。主キーを自動生成するメイン エンティティのみを保存する必要があり、他の依存エンティティは自動的にカスケード保存されます。例えば:
public class Person {
@Id
@GeneratedValue
@Column(name = "Id")
private Long id;
@OneToOne(mappedBy = "person", cascade = CascadeType.ALL)
private Name name;
}
public class Name {
@Id
@Column(name = "Id")
private Long id;
@OneToOne
@PrimaryKeyJoinColumn(name = "Id")
private Person person;
@Column
private String first;
@Column
private String last;
}
Person person = new Person();
person.setName(new Name("first", "last"));
session.save(person);
これら 2 つのエンティティを簡単にセットアップできました。ただし、最初に人を保存してから、休止状態で名前を保存する必要があります。人を救うだけでいいということは非常に重要です。