2016-05-12 41 views
1

条款我试图使用JPA标准APIJPA标准:具有很多列

SELECT * FROM Table1 a 
WHERE (a.category, a.priority) IN (
SELECT a1.category, max(a1.priority) FROM Table1 a1 GROUP BY a1.category 
) 

功能上写下面的SQL查询,查询选择Table与每个类别的最高优先级的元素。

categoryPriority = // defines the pair category/priority 
mySubQuery = // defines the subquery 
query.where(categoryPriority.in(mySubQuery) 

这是我正在寻找的示意图。

定义子查询不是一个问题,因为它是有据可查的。

但我找不到一种方式来定义夫妻(a.category,a.priority)。

回答

3

在JPA中未提供IN子句中的多个列。我认为你需要使用本地查询。

参考:query for select which multiple values in the “IN” clause

+2

感谢您的回答。由于我不想使用本机查询,因此我通过类别和优先级列的值的丑陋串联替换了许多列部分,但我有点失望。 –