1

子オブジェクトは、親オブジェクトから 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 つしか存在しない可能性があるため、これは望ましくありません。親オブジェクトのタイプはユースケースにとって重要ではありません。

4

1 に答える 1