Левое соединение w / Spring Data и QueryDSL для сортировки результатов

У меня есть аналогичная проблема с этим: left join with spring data jpa и querydsl

Интерфейс репозитория Spring Data:

interface DocumentRepository : PagingAndSortingRepository<Document, Long>, QueryDslPredicateExecutor<Document> 

Я использую метод findAll для расширенного поиска с использованием предиката QueryDSL и PageRequest:

 val filteredDocumentsPage = documentRepository.findAll(predicate, pageable) 

Он работает очень хорошо, за исключением того, что я хотел бы добавить порядок, используя левое соединение с дополнительным условием для сортировки результатов . В частности, у меня есть документ таблицы и свойство , в котором хранятся общие свойства (в основном пары ключ-значение). SQL мне нужно было бы выглядеть так:

 SELECT * FROM DOCUEMENT d LEFT JOIN PROPERTY p ON d.documentid = p.documentid AND p.type = 'format' WHERE {QueryDSL-generated-part} ORDER BY p.value 

Я обнаружил, что предикаты приводят к подвыборкам (не пригодным для сортировки), и использование QSort здесь не так уж и мало, так как невозможно (?) Определить конкретное состояние моё при условии – мне нужно что-то вроде

 QSort(QDocument.properties.where(property.type.eq("format")).value.asc()) 

Есть ли способ обхода, как добавить левое соединение с условием и конкретным псевдонимом к запросу и использовать его с QSort?