2017-11-20 10 views
0

을 던져 그러나 그것은이 QuerySyntaxException 던져 :criteriaBuilder selectCase 나는 집계 함수의 선택 케이스를 수행 할 QuerySyntaxException

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: case near line 1, column 125 : [select new com.dev.entity.User(generatedAlias0.id, generatedAlias0.name, generatedAlias0.date, generatedAlias0.mode, count(case when generatedAlias0.id=:param2 then :param3 else :param4 end)) from com.renault.dev.User as generatedAlias0] 

case 기능이 인식되지 않는 경우처럼 :/

있다 기준 쿼리

Expression<String> idCountCase = builder.<String>selectCase().when(builder.equal(userRoot.get(User_.id), "id01"), "EXISTS").otherwise("NOT EXISTS"); 
Expression<Long> idCount = builder.count(idCountCase); 
criteriaQuery.multiselect(userRoot.get(User_.id), userRoot.get(User_.name), userRoot.get(User_.date), userRoot.get(User_.mode), idCount); 

어떤 조언을 해주시겠습니까?
고맙습니다.

답변

0

해결되었습니다. 난 그냥 최대 절전 모드 버전을 업데이 트하고 지금 작동합니다. 나는 집계 함수의 조건이 이전 버전에서 지원되지 않는다고 생각합니다 ...