문제
spring에서 jdbc와 dao-hqml로 연결된 oracle 쿼리에서 attribute key must be unique
가 발생했다.
오류가 발생한 쿼리를 DBeaver에서 실행해 본 결과 정상적으로 실행되었다.
원인
쿼리에 중복 컬럼이 존재했다. 중복컬럼이 존재할 경우 스프링에서 로우별로 map에 저장할 때 동일한 이름의 key가 존재하여 발생한 오류였다.
쿼리에 NAME컬럼이 2개가 있었는데, 1개의 NAME 컬럼은 다른 테이블에서 가져온 후 AS NAME으로 이름을 설정해 주었기 때문에 실행시엔 컬럼명이 동일해도 오류가 발생하지 않았다.
SELECT NO,
(SELECT Decode('ko_Kr', 'ko_Kr', NAME,
ENG_NAME)
FROM ITEM
WHERE 1 = 1
AND CD = CD) AS NAME,
NAME
FROM STAT A
해결
사용하지않는 NAME 컬럼을 삭제
이 문서는
jhy156456에 의해 작성되었습니다.
마지막 수정 날짜:2024-02-04 22:16:42