【发布时间】:2012-01-18 21:16:03
【问题描述】:
我在后端 SQLite 中有一个表示为整数的列,但在 Nhibernate 映射中具有布尔解释。我希望我的 HQL 查询获得“真实”行的计数。在 SQL 中,它可以作为“SUM(BoolColumn)”正常工作,但 HQL 会将返回的值转换为布尔值。我不能使用 where 子句,因为我在 select 中有一些其他 COUNT(DISTINCT) 列,其中包括真行和假行。
【问题讨论】:
标签: nhibernate hql
我在后端 SQLite 中有一个表示为整数的列,但在 Nhibernate 映射中具有布尔解释。我希望我的 HQL 查询获得“真实”行的计数。在 SQL 中,它可以作为“SUM(BoolColumn)”正常工作,但 HQL 会将返回的值转换为布尔值。我不能使用 where 子句,因为我在 select 中有一些其他 COUNT(DISTINCT) 列,其中包括真行和假行。
【问题讨论】:
标签: nhibernate hql
由于 NH 认为它有点(无法汇总),您也许可以在 HQL 中执行类似的操作...
sum(case when BoolColumn = 1 then 1 else 0 end)
您是否定义了从 int 到 bool 的自定义映射,还是假设 int 仅为 1 或 0?
【讨论】:
这对我有用:
sum(case when BoolColumn = true then 1 else 0 end)
【讨论】: