[NHibernate]获取分组查询的记录总数
項(xiàng)目使用NHibernate2.1.0。今天遇到一個(gè)很鬧心的問(wèn)題,我們有一個(gè)帶分組的分頁(yè)查詢
var q = Session.CreateQuery(@"select t.PMM,t.RetailPrice, ...from WarehouseDetail as twhere ...group by t.PMM,t.RetailPrice").SetFirstResult(start).SetMaxResults(limit);由于UI控件的需要,還得把符合上面那個(gè)查詢條件的總的記錄數(shù)查出來(lái),但是下面這個(gè)語(yǔ)句不行
long total = Session.CreateQuery(@"select count(*)from WarehouseDetail as twhere ...group by t.PMM,t.RetailPrice").UniqueResult<long>();因?yàn)槭褂昧朔纸M之后,上面那個(gè)HQL返回的是每個(gè)分組的記錄數(shù),而不是總的記錄數(shù),所以上面那個(gè)語(yǔ)句會(huì)報(bào)“query did not return a unique result: 3”的異常,意思是查詢結(jié)果是3條數(shù)據(jù)。
按照以往寫普通SQL語(yǔ)句的思路,我們會(huì)想把它改成下面這種子查詢的形式
但是很可惜,NHibernate還不支持這種from子查詢。
另一種寫法,是使用count distict
可是TNND NHibernate 居然不支持在count()里面進(jìn)行字符串連接操作!我詛咒NHibernate項(xiàng)目組一輩子買方便面都只有調(diào)料包!!
最后沒法子,搞了一個(gè)有點(diǎn)無(wú)厘頭的語(yǔ)句
?
轉(zhuǎn)載于:https://www.cnblogs.com/1-2-3/archive/2010/03/12/nhibernate-group-total-rowcount.html
總結(jié)
以上是生活随笔為你收集整理的[NHibernate]获取分组查询的记录总数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WebSen!NT的行业分类说明
- 下一篇: 2400g核显性能(不明白2400g这样