Пока мне хватило JPA-репозиториев Spring, но теперь мне нужен специальный запрос. Я боролся с этим в течение дня, пытаясь узнать больше о SQL, joins, et c и придумал собственный запрос MySQL, который (я думаю) делает то, что я хочу: я хочу найти все последние каждого "продукта" с уникальным URL. Пример:
PRODUCT
id | url | created_date
---------------------------------------------
1 | http://foo.bar/products/a | 2020-04-01
2 | http://foo.bar/products/a | 2020-04-02
3 | http://foo.bar/products/b | 2020-04-02
4 | http://foo.bar/products/a | 2020-04-03
5 | http://foo.bar/products/b | 2020-04-03
RESULT
id | url | created_date
---------------------------------------------
4 | http://foo.bar/products/a | 2020-04-03
5 | http://foo.bar/products/b | 2020-04-03
Это собственный запрос MySQL, который я придумал:
SELECT *
FROM product t
INNER JOIN
(SELECT url, MAX(created_date) AS Latest
FROM product
GROUP BY url) grouped_url
ON t.url = grouped_url.url
AND t.created_date = grouped_url.Latest
Мои попытки преобразовать его в JPQL, чтобы использовать их как аннотацию @Query довольно неловко, так что я даже не буду публиковать их здесь: D Кто-нибудь может мне помочь?