Невозможно сортировать по нескольким столбцам динамически в QUILL SQL - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть запрос quill DYNAMI C, который является JOIN между несколькими таблицами. Теперь я хочу отсортировать запрос по нескольким столбцам по количеству полученных входов. Сортировка в каждом столбце может быть возрастающей или убывающей. Также столбцы имеют разные типы данных. Я просматривал документацию и получил следующее

 val q3 = quote {
    query[Person].sortBy(p => (p.name, p.age))(Ord(Ord.asc, Ord.desc))
  }

   ctx.run(q3)
 // SELECT p.id, p.name, p.age FROM Person p ORDER BY p.name ASC, p.age DESC

Однако это на двух столбцах и является c. Есть ли в Quill утилита для динамической сортировки c ?? Мои столбцы и порядок сортировки принимаются в виде списка [(String, String)]. заранее спасибо.

Я пробовал что-то вроде этого

query.sortBy(_.column1)(Ord.asc).sortBy(_.column2)(Ord.desc)

column1 и column2 из разных таблиц, однако это не удается во время выполнения, так как я получаю

 :"java.lang.IllegalStateException: The monad composition can't be expressed using      applicative joins. Faulty expression

Есть ли способ решить эту проблему и сделать многостолбцовую сортировку?

...