У меня есть сущность А говорят, что автомобиль с отношением OneToMany к Entity B говорит CarProperty.QueryDSL Пейджинг Сортировка дубликатов
Мой автомобиль Repository расширяет QueryDslPredicateExecutor для поддержки пейджинга и сортировки:
Page<T> findAll(Predicate predicate, Pageable pageable);
Я пытаюсь выполнить запрос, где я сортировать результаты, столбиком CarProperty, определяя вид на выгружаемой переменной , Однако, поскольку это отношение «Один ко многим» между Car и CarProperty, я вернул дубликаты автомобилей. Можно ли получить отличные результаты по автомобилю, используя эту структуру?
Если это не представляется возможным использовать отличие от предиката, как я мог бы представить следующий запрос в предикате (используя существует для устранения дубликатов):
SELECT Car.*
FROM Car C LEFT JOIN CarProperty CP ON (C.ID = CP.CAR_ID)
WHERE EXISTS (SELECT 1
FROM CarProperty CP2
WHERE CP2.CAR_ID = C.ID AND CP2.ID = CP.ID)
ORDER BY CP.PROPERTY_NAME ASC;
Заранее спасибо