1

JPAとの双方向の0対1の関連付けを実装したいと思います。今のところ、次のスニペットを使用します。

@Entity
class A {
    ...
    @OneToOne(fetch = FetchType.EAGER, optional = true)
    @PrimaryKeyJoinColumn
    private B a;
...
}


@Entity
class B {
    ...
    @OneToOne(fetch = FetchType.EAGER, optional = true)
    @PrimaryKeyJoinColumn
    private A a;
...
}

問題は、エンティティAをロードしようとすると、エンティティBのロードに使用されるフェッチタイプ戦略が体系的に「FetchType.SELECT」であるということです。見つかったエンティティAごとに、関連付けられたエンティティBを取得するためにselectステートメントが完了します。@ Fetch(FetchMode.JOIN)休止状態アノテーション(以下を参照)を使用してこの問題に対処しようとしましたが、機能しません。

@Entity
class A {
    ...
    @OneToOne(fetch = FetchType.EAGER, optional = true)
    @PrimaryKeyJoinColumn

    // ineffective hibernate annotation
    @Fetch(FetchMode.JOIN)
    private B a;
...
}
4

0 に答える 0