3

我有一个简单的 JPA 实体(休眠实现),具有急切获取的关系:

用户.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 执行这个外连接而不是内连接(因为我已经告诉它它不是可空的或可选的)。有没有办法强制内部连接?

谢谢。

4

1 回答 1

1

如果我是对的,Hibernate 总是使用左外连接,你不能强制休眠进行内连接。当您检索父实体时,并非所有父实体都必须拥有子实体。因此,如果使用内部连接,您可能最终没有结果。

于 2013-03-28T12:28:29.470 回答