Левое соединение 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?

Intereting Posts
Android-версия 3.1 Canary 4 Genymotion Emulator Plugin Failed Доступ к атрибуту карты Entry (Kotlin) Несколько значков желоба связанных файлов XML в Android Studio с Kotlin Типы подстановок Java против звездной проекции Котлина Общая собственность Котлин Как подключить HazelcastClient к HazelcastServer после перезагрузки сервера Могу ли я использовать имя лямбда в качестве параметра, переданного «вне круглых скобок»? Каковы наилучшие методы для «обрезки» исключения stacktrace перед регистрацией с помощью SLF4J? После добавления макетов программно, как изменить текстовое представление «#» нажатием кнопки Единичное тестирование сопрограммы Kotlin с задержкой Как использовать KeyEvent в Котлине Kotlin & Anko сопрограммы: возвращение вне асинхронного Когда лямбда-параметры должны быть noinline в Котлин? Котлин коанс не работает? Я сошел с ума? Как установить ширину границы FloatingActionButton с Anko