У меня есть приложение Spring Boot.В нем у меня есть SQL-запрос, который требует создания подзапроса, внутреннего объединения результатов этого подзапроса с другой таблицей и последующего выбора из результатов этого внутреннего соединения.Но, очевидно, JPA не позволяет использовать подзапросы в предложении FROM (я предполагаю, что ни с использованием JPQL, ни с использованием Criteria API).Есть ли способ обойти это?
Я думал о том, чтобы сохранить результаты подзапроса во временной сущности (в идеале, не создавая таблицу, сохраняемую в БД), а затем выбрать из данных, хранящихся в этих сущностях.Но я не уверен, как это сделать с помощью Spring.Я хочу что-то даже более «временное», чем создание кеша, поскольку результаты подзапроса уходят из памяти после выполнения запроса.
Вот запрос SQL, аналогичный тому, что я хочу сделать:
SELECT g1.name, g1.publisher, g1.price, g1.released_at
FROM games AS g1
INNER JOIN (
SELECT released_at, MAX(price) as price
FROM games
GROUP BY released_at
) AS g2
ON g2.released_at = g1.released_at AND g2.price = g1.price;
Я ожидаю результатов от SQL-запроса, описанного здесь: http://bernardoamc.github.io/sql/2015/05/04/group-by-non-aggregate-columns/