我有三个对象。
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
但是我得到一个错误,说道路是预期的。有什么想法吗?
答案 0 :(得分:2)
您可以尝试子查询,例如:
SELECT DISTINCT c.Parent FROM Child c WHERE NOT EXISTS(FROM Record r WHERE r.Child = c)