HQL:获取连接包含空值的列表

时间:2009-11-16 21:58:22

标签: c# nhibernate hql

我有三个对象。

public class ParentClass
{
public virtual Guid ParentClassId { get; set; }
public virtual IList<Child> Children { get; set; }
}

public class Child
{
public virtual Guid ChildId { get; set; }
public virtual ParentClass Parent { get; set; }
}

public class Record
{
public virtual Guid RecordId { get; set; }
public virtual Child Child { get; set; }
}

ParentClass和Child的集合由外部服务添加到数据库中。将运行一个服务,偶尔会查找需要处理的任何Child并返回ParentClass列表,因为ParentClass中的每个Child应该一起处理。

我想编写一个HQL查询来选择所有子项的不同父项,其中没有Records有外键。目前,我有这个:

SELECT DISTINCT c.Parent FROM Child c LEFT JOIN Record r WHERE r is null

但是我得到一个错误,说道路是预期的。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试子查询,例如:

SELECT DISTINCT c.Parent FROM Child c WHERE NOT EXISTS(FROM Record r WHERE r.Child = c)