문제

guys thanks for your time and help i have this Mysql SQL

SELECT
IFNULL(SUM(IF((P_P LIKE 'P%'), 1, 0)), 0) AS numIn,
IFNULL(SUM(IF((P_A LIKE 'A%'), 1, 0)), 0) AS numOut
FROM PA_DATE

i try this on HQL

SELECT
COALESCE(SUM(IF((P_P LIKE 'P%'), 1, 0)), 0) AS numIn,
COALESCE(SUM(IF((P_A LIKE 'A%'), 1, 0)), 0) AS numOut
FROM PaDate

i get Error:

    java.lang.NullPointerException
at org.hibernate.dialect.Dialect$3.getReturnType(Dialect.java:102)

what i have to check?

도움이 되었습니까?

해결책

I don't believe HQL supports if() as a function. The following should work in both databases:

SELECT SUM(case when P_P LIKE 'P%' then 1 else 0 end) AS numIn,
       SUM(case when P_A LIKE 'A%' then 1 else 0 end) AS numOut
FROM PaDate
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top