【发布时间】:2012-01-19 07:41:14
【问题描述】:
我正在使用休眠,并且我有一个像
这样的实体@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;
}
我在数据库中有一条记录
id | name | parent_id
125 | n1 | null
当我尝试使用休眠查询获取此记录时
Select e.id,e.name,e.parent.name from MyEntity e where e.id =125
此查询返回零记录。因为这里的父级为空,所以有什么方法可以处理这种情况。 感谢您的建议。
【问题讨论】:
-
这没有意义。为什么你认为这是因为父母为空?
-
但我想要那条记录。如果 parent 为 null,它应该返回 e.parent.name null。
-
e.parent.name导致内部联接因 null 而失败。看看这个:http://stackoverflow.com/questions/601615/how-to-simulate-nvl-in-hql