Hibernate中Null引用的查询处理

Sag*_*rpe 0 java hibernate jpa

我正在使用hibernate,我有一个实体

@Entity
@Table(name = "MyEntity")
Class MyEntity {
        @Id
    @GeneratedValue
    private long id;

    @Column(name = "NAME")
    private String name;

    //some more attributes here 

        @OneToOne
    @JoinColumn(name = "PARENT_ID")
        MyEntity parent;

}
Run Code Online (Sandbox Code Playgroud)

我在数据库中有一条记录

id   |  name | parent_id 

125 |   n1  |   null
Run Code Online (Sandbox Code Playgroud)

当我试图用hibernate Query获取此记录时

Select e.id,e.name,e.parent.name from MyEntity e where e.id =125
Run Code Online (Sandbox Code Playgroud)

这个查询返回零记录.因为父在这里是null,所以有任何方法来处理这种情况.谢谢你的建议.

axt*_*avt 5

在你的情况下,Hibernate隐式使用内部连接,当其中一个边是时,它不会返回任何内容null.

您可以指示Hibernate使用左外连接,如下所示:

select e.id, e.name, p.name from MyEntity e left join e.parent p where e.id = 125
Run Code Online (Sandbox Code Playgroud)