如何在HQL(NHibernate)中总结一个布尔列?

时间:2012-01-18 21:16:04

标签: nhibernate hql

我在后端SQLite中有一个以整数表示的列,但在Nhibernate映射中有一个布尔解释。我希望我的HQL查询得到'真'行的计数。在SQL中,它可以正常工作为“SUM(BoolColumn)”,但是HQL将返回的值转换为bool。我不能使用where子句,因为我在select中有一些其他COUNT(DISTINCT)列,包括true和false行。

2 个答案:

答案 0 :(得分:7)

由于NH认为它有点(无法聚合)你可以在HQL中做这样的事情......

sum(case when BoolColumn = 1 then 1 else 0 end)

您是否定义了从int到bool的自定义映射,或者假设int只是1或0?

答案 1 :(得分:1)

这对我有用:

sum(case when BoolColumn = true then 1 else 0 end)