Я хочу реализовать SQL:
SELECT
*
FROM
tableName
WHERE
(a,b,c) IN (
SELECT
max(createTime),a,b,c
FROM
tableName
GROUP BY
a,b,c)
Мои текущие результаты:
repository.findAll((Specification<PO>) (root, criteriaQuery, criteriaBuilder) -> {
Subquery<Number> subquery = criteriaQuery.subquery(Number.class);
Root<PO> from = subquery.from(PO.class);
subquery.select(criteriaBuilder.max(from.get("createTime")));
subquery.groupBy(from.get("a"), from.get("b"), from.get("c"));
CriteriaBuilder.In<Object> house = criteriaBuilder.in(root.get("a")).value(subquery);
return criteriaBuilder.and(house);
});
Однако оператор, сгенерированный таким образом, отличается от того, что я хочу , что неправильно, я не знаю, как достичь своей цели