次の2つの宣言の違いは正確には何ですか
Bは所有側です
@Entity
class A {
@Id int id;
@OneToOne
B b;
}
@Entity
class B {
@Id int id;
@OneToOne(mappedBy="b")
A a;
}
Aは所有側です
@Entity
class A {
@Id int id;
@OneToOne(mappedBy="a")
B b;
}
@Entity
class B {
@Id int id;
@OneToOne
A a;
}
これを「通常のSQL」で考えると、2つのテーブルがそれぞれ他のテーブルの外部キーを持っているのと同じだと思います。私が理解していないのは、どのエンティティが所有側であるかを指定することの効果、つまり「mappedBy」プロパティを使用することの効果です。通常のSQLに同等のものがあるとは思わないので、これは実際に何を達成しますか。