6 행, ID, Country, Currency_Name, Alphabetic_code, Numeric_Code, Minor_Unit으로 통화에 대한 ISO 4217 values 테이블이 있습니다.JPA에서 DISTINCT 선택
은 내가 4 most used currencies에 대한 데이터의 일부를 취득해야하고, 내 "순수"SQL 쿼리는 다음과 같이 간다 : 내가 필요한 데이터와 함께 4 행 테이블을 반환
select distinct currency_name, alphabetic_code, numeric_code
from currency
where ALPHABETIC_CODE IN ('USD','EUR','JPY','GBP')
order by currency_name;
합니다. 여태까지는 그런대로 잘됐다.
이제 이것을 JPA XML 파일로 변환해야하며 문제가 시작됩니다. 내가 얻기 위해 노력하고있어 쿼리는 다음과 같다 :
SELECT DISTINCT c.currencyName, c.alphabeticCode, c.numericCode
FROM Currency c
WHERE c.alphabeticCode IN ('EUR','GBP','USD','JPY')
ORDER BY c.currencyName
이 그 통화의 일부를 가지고 각 국가에 대해 하나의 행으로 목록을 반환합니다 (같이 쿼리에는 "DISTINCT"이 없다면). 그리고 왜 내 머리를 긁적입니다. 따라서 질문은 다음과 같습니다.
1) "순수한"SQL이 제공하는 것을 되돌리기 위해 어떻게이 쿼리를 만들 수 있습니까?
2) 왜이 쿼리가 내 "DISTINCT"절을 무시하고있는 것입니까? 여기에 실종 된 것이 있는데, 나는 무엇을 얻지 못합니다. 무슨 일이야, 내가 못지고있는거야?
편집 : 글쎄, 이것은 더 이상 해지고 있습니다. 어떻게 든 JPA 쿼리는 의도 한대로 작동합니다 (4 행 반환). (좀 더 많은 정보를 필요에 따라) 나는 이것을 시도했다 :
SELECT DISTINCT c.currencyName, c.alphabeticCode, c.numericCode, c.minorUnit, c.id
FROM Currency c
WHERE c.alphabeticCode IN ('EUR','GBP','USD','JPY')
ORDER BY c.currencyName
그리고 ID가 4 행 테이블을 돌아 돌아갑니다 쿼리에서 제거로 모든 것을 엉망으로되어 보인다. 그리고 괄호를 넣는 것은 쓸모가 없습니다.
btw, 우리는 이클립스 링크를 사용하고 있습니다.
로그를 사용하여 찾을 의도 예를 들어, GROUP BY를 사용하여, 당신은 이런 일을 할 수있는 하나 이상의 열에서 별개를 실행하려면 JPQL을 번역 한 SQL을 알려줄 것입니다. –