我正在尝试执行如下所示的求和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;
Run Code Online (Sandbox Code Playgroud)
使用来自Hiberate 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))
Run Code Online (Sandbox Code Playgroud)
但是出现以下编译错误:
类型参数'N'的推断类型'java.lang.object'不在其范围内; 应该扩展'java.lang.number'
知道如何使用selectCase支持执行求和吗?
criteria-api ×1