2016-05-12 23 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

感謝您的回答。由於我不想使用本機查詢,因此我通過類別和優先級列的值的醜陋串聯替換了許多列部分,但我有點失望。 –