JPA -разница в использовании свойства mappedBy для определения объекта-владельца

В чем именно разница в следующих двух объявлениях

B — сторона-владелец

@Entity
class A {
   @Id int id;

   @OneToOne
   B b;
}

@Entity
class B {
   @Id int id;

   @OneToOne(mappedBy="b")
   A a;
}

А — сторона-владелец

@Entity
class A {
   @Id int id;

   @OneToOne(mappedBy="a")
   B b;
}

@Entity
class B {
   @Id int id;

   @OneToOne
   A a;
}

Думая об этом в «обычном SQL», я думаю, что это то же самое, что иметь две таблицы, каждая из которых имеет внешний ключ другой таблицы. Однако я не понимаю, каков эффект указания того, какая сущность является стороной-владельцем, то есть использования свойства mappedBy. Что это на самом деле дает, поскольку я не верю, что в обычном SQL есть эквивалент.

8
задан ziggy 10 June 2012 в 12:06
поделиться