nHibernate HQL查询中的最大日期

nHibernate HQL查询中的最大日期,nhibernate,hql,icriteria,Nhibernate,Hql,Icriteria,我在编写一个hql查询时遇到了一些困难,该查询将在一个表中搜索满足某些条件的所有行,但我只想返回包含最大日期的行 例如,查询的where子句类似于: column1=input1,column2=input2,date\u column

我在编写一个hql查询时遇到了一些困难,该查询将在一个表中搜索满足某些条件的所有行,但我只想返回包含最大日期的行

例如,查询的where子句类似于:

column1=input1,column2=input2,date\u column 这可能会返回多个日期不同的行,但我只对最新日期的行感兴趣。我还需要它返回整行


目前,我正在使用上面的条件按日期降序执行查询,然后获取C中的第一项。如果可能的话,我希望有一个hql查询或iCriteria解决方案可以一步完成这项工作。

您只需要使用子查询。从符合条件的行中选择最长日期,然后选择与最长日期匹配的所有记录。我的HQL有点生锈了,但你明白了

from TableA a 
where a.Date in (
    select max(b.Date) 
    from TableA b 
    where b.Something="You get the idea"
)

这是从TableA中获取日期等于子查询所选日期的所有行,因此子查询中的where条件不会应用于主查询。我假设这些日期是唯一的。为什么不将where条件同时应用于主查询和子查询?