CriteriaBuilder - Sum using SelectCase

Viewed 9595

I am trying to perform a summation SQL query like the following:

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;  

using the following snippet from a hiberate CriteriaBuilder query:

criteriaBuilder.sum(
  criteriaBuilder.selectCase()  
     .when(criteriaBuilder.equal(subscriptionJoin.get(Subscription_.userType), "Exec"),1000)  
     .when(criteriaBuilder.equal(subscriptionJoin.get(Subscription_.userType), "Office"),1)  
     .otherwise(101))  

However the following compile error appears:

Inferred type 'java.lang.object' for type parameter 'N' is not within its bound; should extend 'java.lang.number'

Any idea how to support performing a summation using the selectCase?

2 Answers
Related