C# Nhibernate简单自连接

C# Nhibernate简单自连接,c#,hibernate,nhibernate,hql,criteria,C#,Hibernate,Nhibernate,Hql,Criteria,我有一个包含以下字段的表: ID (Primary key) Name Some more data fields 我想写一个查询,给定一个名称,它将给我所有ID大于该名称的行的行 (是的,我知道名称不是唯一的…在系统中是唯一的。) 我想要像这样的东西: select * From SomeTable as x WHERE x.ID> (Select ID from SomeTable as y where y.Name LIKE :param) 或: 当然,我想要的是自联接,而不是

我有一个包含以下字段的表:

ID (Primary key)
Name 
Some more data fields
我想写一个查询,给定一个名称,它将给我所有ID大于该名称的行的行

(是的,我知道名称不是唯一的…在系统中是唯一的。)

我想要像这样的东西:

select *
From SomeTable as x
WHERE x.ID> (Select ID from SomeTable as y where y.Name LIKE :param)
或:

当然,我想要的是自联接,而不是子查询


顺便说一句。
标准也一样…

在HQL中加入后,您将无法做到这一点

但是这个HQL查询是可以的:

select f from Foo f where f.id > (select f2.id from Foo f2 where f2.name = :name)
如果subselect可能返回多个id,那么也可以使用

select f from Foo f where f.id > all (select f2.id from Foo f2 where f2.name = :name)

使用HQL中的联接将无法完成此操作

但是这个HQL查询是可以的:

select f from Foo f where f.id > (select f2.id from Foo f2 where f2.name = :name)
如果subselect可能返回多个id,那么也可以使用

select f from Foo f where f.id > all (select f2.id from Foo f2 where f2.name = :name)

在HQL中使用SubSelect不会导致在SQL中使用SubSelect吗?这会使它运行得慢很多?为什么子选择必然会导致查询速度慢很多?尝试执行它,在没有子选择的情况下对查询进行度量,检查解释计划并微调索引。在HQL中使用子选择不会导致SQL中的子选择吗?这会使它运行得慢很多?为什么子选择必然会导致查询速度慢很多?尝试执行它,在没有子选择的情况下对查询进行度量,检查解释计划并微调索引。