JPA version 1.5.4 UNION ALL

shd0101·2023년 3월 24일
0

자바웹개발자.log

목록 보기
1/2
post-thumbnail

JPA 1.5.4 버전 개발 환경에서 native query를 작성하였는데 문제가 발생 하였다.

  1. UNION ALL 하여 소계, 총계를 구하는 쿼리였는데
    소계 구하는 쿼리를 "A", 총계 구하는 쿼리를 "B" 로 예를 들자면.
    B의 몇개 컬럼은 '' 공백으로 별칭을 주었는데 B의 '' 공백컬럼에 A의 컬럼값이 들어가서 조회가 되었다.
SELECT ROW_NUMBER() OVER() AS ROWNUM , '1' AS COL , 'A' AS NAME FROM DUAL
UNION ALL 
SELECT ROW_NUMBER() OVER() AS ROWNUM , '2' AS COL , '' AS NAME FROM DUAL
  1. response 는 다음과 같이 받아왔다.
    디비툴에서는 COL 은 '2' NAME ''을 정상적으로 조회 되었지만 reponse 결과는 전혀 달랐다.

    ROWNUM / COL / NAME
    1 / 1 / A
    1 / 1 / A

  1. 여러 시도 끝에 ROWNUM을 다르게 줬더니 정상적으로 원하는 결과를 얻게 되었다.
     SELECT '1' AS ROWNUM , '1' AS COL , 'A' AS NAME FROM DUAL
     UNION ALL 
     SELECT '2' AS ROWNUM , '2' AS COL , '' AS NAME FROM DUAL

ROWNUM / COL / NAME
1 / 1 / A
2 / 2 /

JPA 1.5.4 버전의 경우 ROWNUM이란 별칭을 분기처리를 한 것인지 모르겠다,
JPA 2.6.0 버전 환경에서 동일하게 테스트 해 본 결과 : 위 같은 현상없이 정상적으로 출력되었다.

0개의 댓글