我有一个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。 –