Я делаю сортировку по нескольким столбцам в соединенных таблицах, где столбец сортировки может существовать в любой из объединенных таблиц. Столбец может быть любым динамическим столбцом c, который представлен списком -> sortBys
. Вот минимальный воспроизводимый пример.
case class Employee(name: String, age: Int, company_name: String)
case class Company(name: String, address: String)
val sortBys = List("name", "company_name", "age")
private def dynamicSort(employeeQuery: DynamicQuery[(Employee, Company)],
sortBy: String): DynamicQuery[(Employee, Company)] = {
sortBy match {
case "name" => employeeQuery.sortBy(_._1.name)(Ord.asc)
case "age" => employeeQuery.sortBy(_._1.age)(Ord.desc)
case "company_name" => employeeQuery.sortBy(_._2.name)(Ord.asc)
}
}
val sortedEmployeeQuery = sortBys.foldRight(employeeQ) {
case (sortBy, query) => dynamicSort(query, sortBy)
}
Когда я пытаюсь напечатать вышеупомянутый запрос, я получаю эту ошибку времени выполнения
java.lang.IllegalStateException: The monad composition can't be expressed using applicative joins. Faulty expression: 'x1.name'. Free variables: 'List(x1)'., Faulty expression: 'x1.name'. Free variables: 'List(x1)'., Faulty expression: 'x1.age'. Free variables: 'List(x1)'., Faulty expression: 'x1.company_name'. Free variables: 'List(x1)'., Faulty expression: 'x2.name'. Free variables: 'List(x2)'., Faulty expression: 'x2.address'. Free variables: 'List(x2)'., Faulty expression: 'x2.name'. Free variables: 'List(x2)’.
Это неправильный способ выполнения Dynami c мульти сортировка ?? Однако сортировка по одному столбцу работает без проблем. Поддерживает ли quill динамическую c мультисортировку? Может кто-нибудь, пожалуйста, помогите ?? Заранее спасибо. Обратите внимание, что мне может потребоваться выполнить мультисортировку по нескольким столбцам AS C и нескольким столбцам в DES C, который является чисто динамическим c
@ getquill / keepers