我正在编写一个难以编写的hql查询,该查询将在表中搜索满足某些条件的所有行,但我只想返回具有最大日期的行。
例如,查询的where子句类似于:
column1 = input1和column2 = input2和date_column< date_input
这可能会返回具有不同日期的多行,但我只对具有最新日期的行感兴趣。我还需要它来返回整行。
目前,我正在使用上面按日期排序的标准执行查询,然后在C#中获取第一个项目。我希望有一个hql查询或iCriteria解决方案,如果可能的话,可以一步完成。
答案 0 :(得分:4)
您只需要使用子查询。从符合条件的行中选择最大日期,然后选择与最大日期匹配的所有记录。我的HQL有点生疏,但你明白了。
from TableA a
where a.Date in (
select max(b.Date)
from TableA b
where b.Something="You get the idea"
)