我正在尝试执行汇总 SQL 查询,如下所示:
select group_ID, sum(case when user_type = 'Exec' then 1000
when user_type = 'Office' then 10 else 0 end)
from subscription
group by group_ID;
使用来自休眠 CriteriaBuilder 查询的以下片段:
criteriaBuilder.sum(
criteriaBuilder.selectCase()
.when(criteriaBuilder.equal(subscriptionJoin.get(Subscription_.userType), "Exec"),1000)
.when(criteriaBuilder.equal(subscriptionJoin.get(Subscription_.userType), "Office"),1)
.otherwise(101))
但是会出现以下编译错误:
类型参数“N”的推断类型“java.lang.object”不在其范围内;应该扩展'java.lang.number'
知道如何支持使用 selectCase 执行求和吗?