我有一個ISO 4217 values貨幣(有6行,ID,國家,Currency_Name,Alphabetic_code,Numeric_Code,Minor_Unit)表。選擇DISTINCT JPA
我需要得到一些數據爲4 most used currencies,和我的「純粹」的SQL查詢是這樣的:
select distinct currency_name, alphabetic_code, numeric_code
from currency
where ALPHABETIC_CODE IN ('USD','EUR','JPY','GBP')
order by currency_name;
與我所需要的數據返回一個4行的表。到現在爲止還挺好。
現在我必須將其轉換爲我們的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,我們正在使用eclipse鏈接。
日誌爲您JPQ提供商會告訴你它已將JPQL翻譯成的SQL。 –