JPQLに変換しようとしているSQLクエリがあります。クエリは次のとおりです。
SELECT *
FROM MyTable
WHERE (myFirstColumn, mySecondColumn) IN (
SELECT myFirstColumn, max(mySecondColumn)
FROM MyTable
GROUP BY myFirstColumn
)
私の変換の試みは簡単です:
select myObject
from MyObject as myObject
where (myObject.myFirstValue, myObject.mySecondValue) in (
select subMyObject.myFirstValue, max(subMyOject.mySecondValue)
from MyObject as subMyObject
group by subMyObject.myFirstValue
)
MyObject は MyTable にマップされます (注釈を使用)。
IN ステートメントに関する JPQL ドキュメント ( http://openjpa.apache.org/builds/1.2.3/apache-openjpa/docs/jpa_langref.html#jpa_langref_in ) を理解していて、本当によくわからない場合は、このような直接変換は不可能です。別の方法はありますか?