2016-06-11 2 views
0
SELECT 
    CONCAT(CREG.FIRSTNAME, ' ', CREG.LASTNAME) AS NAME, 
    CASE WHEN CR.CAMPAIGNTYPE = 'NPS' 
    THEN NPSSCORE 
    ELSE CSATSCORE END       AS SCORE, 
    IFNULL(cast(CC.TEXT AS CHAR(255)), '')  AS COMMENTS, 
    CREG.ID         AS CLIENTID, 
    CR.ID          AS CAMPAIGNRESPONSEID, 
    CI.ID          AS ISSUEID 
FROM CUSTOMER_ISSUES CI INNER JOIN (SELECT DISTINCT ISSUEID 
            FROM ISSUE_DEPARTMENT_MAPPING 
            WHERE CUSTOMERUSERID = 91 AND ISSUE_STATUS = 'New') IDM 
    ON CAST(CI.FEEDBACK_DATE AS DATE) BETWEEN '2016-06-05' AND '2016-06-11' AND IDM.ISSUEID = CI.ID 
    INNER JOIN CAMPAIGN_RESPONSE CR ON CR.ID = CI.CAMPAIGN_RESPONSE_ID 
    INNER JOIN CLIENT_REGISTRATION CREG ON CREG.ID = CR.RESPONSECUSTOMERID 
    LEFT OUTER JOIN CAMPAIGN_COMMENTS CC ON CC.CAMPAIGN_RESPONSE_ID = CR.ID; 

위의 쿼리가 제대로 MySQL의 콘솔에서 실행의 결과 집합에서 열 값을 읽을 수 없습니다,하지만 난 하이버 네이트와 통합하고 할 때, 다음과 같은 오류가 Hibernate에 의해 발생합니다.는 최대 절전 모드 기본 쿼리

[BigIntegerType] 결과 집합에서 열 값을 읽을 수 없습니다 : ID; 'ID'열을 찾을 수 없습니다.

+0

세트는'show_sql = TRUE '확인, 로그/콘솔에 인쇄 된 SQL을 얻을 그것을 잘 실행 여부 mysql-console에있다. 어떻게 바인딩 매개 변수는 무엇입니까? 또한 게시 스택 추적 게시 – Saravana

답변

1

SQL 쿼리에서 별칭 이름을 제거하십시오. 당신이 CREG.ID 대신 된 ClientID로 열을 반환 JDBC에

SELECT 
    CONCAT(CREG.FIRSTNAME, ' ', CREG.LASTNAME) AS NAME, 
    CASE WHEN CR.CAMPAIGNTYPE = 'NPS' 
    THEN NPSSCORE 
    ELSE CSATSCORE END       AS SCORE, 
    IFNULL(cast(CC.TEXT AS CHAR(255)), '')  AS COMMENTS, 
    CREG.ID         AS CLIENTID, 
    CR.ID          AS CAMPAIGNRESPONSEID, 
    CI.ID          AS ISSUEID 

을 실행할 때

은 기본적으로 여기에서 발생하는 것입니다. 별칭을 사용하지 않고 쿼리를 실행 해보십시오. 일반적으로 JDBC에는이 문제가 있습니다. 당신은 여전히 ​​별칭을 사용하여 주장하는 경우, 구성 파일에 JDBC URL에 다음 항목을 추가

[useOldAliasMetadataBehavior = TRUE]

+0

모든 id 열에서 별칭을 제거한 후 작동했습니다! –