Я ищу эквивалент этого SQL-запроса в JPQL
SELECT l.*
FROM product_update l
INNER JOIN (
SELECT
ID_PRODUCT,
MAX(ID) AS maxID
FROM product_update
GROUP BY ID_PRODUCT
) groupel ON l.ID_PRODUCT = groupel.ID_PRODUCT
AND l.ID = groupel.maxID
ORDER BY ID DESC
Мой класс Java
public class ProductUpdate extends BaseEntity {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PRODUCT_UPDATE_SEQUENCE")
@Column(name = "ID")
private Long id;
@JoinColumn(name = "ID_PRODUCT")
@ManyToOne()
private Product product;
@JoinColumn(name = "ID_VERSION")
@ManyToOne()
private Versioning versioning;
}
действительно, продукт может иметь несколько версий, но система просто отображаетпродукт с max (id) Пример:
1-Product 1 --- Version 1
2-Product 2 --- Version 1
3-Product 3 --- Version 1
4-Product 1 --- Version 2
5-Product 3 --- Version 2
6-Product 3 --- Version 3
что запрос только что вышел
2-Product 2 --- Version 1
4-Product 1 --- Version 2
6-Product 3 --- Version 3
Спасибо.