Как создать этот запрос в Hibernate (с использованием интерфейса спецификации / JpaSpecificationExecutor)?
SELECT i1.*
FROM Images AS i1 LEFT JOIN images AS i2
ON (i1.Gallery = i2.Gallery AND i1.Submitted < i2.Submitted)
WHERE i2.Submitted IS NULL;
Источник: https://www.exchangecore.com/blog/mysql-sql-retrieve-most-recent-or-largest-record-group/
Я пробовал это до сих пор:
public Predicate toPredicate(final Root<GalleryEntity> root, final CriteriaQuery<?> query, final CriteriaBuilder criteriaBuilder) {
final List<Predicate> predicates = new ArrayList<Predicate>();
final Join join = root.join("Images", JoinType.LEFT);
join.on(criteriaBuilder.equal(root.get("Gallery"), join.get("Gallery")));
predicates.add(join.getOn());
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
}