子オブジェクトは、親オブジェクトから getChild() を呼び出すことによってロードされます (以下の例を参照)。この時点で、休止状態は親子関係を認識しています。この情報を使用してプログラムで双方向の関係を復元する方法 (たとえば、親フィールドを子に設定する)?
@Entity
public class Parent {
@Id
private String id;
@OneToOne(fetch=FetchType.LAZY)
private Child child;
public Child getChild(){
return child;
}
}
@Entity
public class Child {
@Id
private String id;
@Transient
private Object parent;
public Object getParent(){
return parent;
}
}
動機: 子は異なるクラスから参照される場合がありますが、実行時に許可される親オブジェクトは 1 つだけです。「mappedby」を使用すると、Child クラスに複数の「逆」フィールドが作成されます。実行時に親オブジェクトが 1 つしか存在しない可能性があるため、これは望ましくありません。親オブジェクトのタイプはユースケースにとって重要ではありません。