3

私は熱心にフェッチされた関係を持つ単純なJPAエンティティ(休止状態の実装)を持っています:

User.java:

@Entity
@Table(name = "USER")
public class User {

    @OneToOne(optional=false)
    @JoinColumn(name = "USER_STATUS_ID", nullable = false)  
    private UserStatus userStatus;

ユーザーステータス:

@Entity
@Table(name = "USER_STATUS")
public class UserStatus {

    @Column(name = "name", nullable = false)
    private String name;

エンティティを検索するために生成されているクエリは、次のようになります。

...from user left outer join user_status on...

私の質問は、Hibernateが内部結合ではなくこの外部結合を実行するのはなぜですか(null許容またはオプションではないと言ったため)。内部結合を強制する方法はありますか?

ありがとう。

4

1 に答える 1

1

私が正しければ、Hibernateは常に左外部結合を使用し、Hibernateに内部結合を強制することはできません。親エンティティを取得する場合、すべての親エンティティが子を持つことは必須ではありません。したがって、内部結合を使用すると、結果が得られない可能性があります。

于 2013-03-28T12:28:29.470 に答える