Następująca funkcja działa dobrze, ale chciałbym go najpierw sortować wyniki przez parent_id, a następnie według porządku.Sortowanie Slick kwerendy wyniki dla wyrażenia
def getTree = for {
(a, c) <- Activities leftJoin Clients on (_.id === _.id_a)
} yield (a.id, a.label, a.parent_id, a.order, c.id.?, a=c.name)
Jak to zrobić za pomocą Slick?
Jak intuicyjna składnia krotka jest ... Nie. Zły stary orderBy (nameThatHasMeaning, otherMeaningfulName.desc) został wycofany na korzyść składni sortBy (x => x._3 ~ x._4). Zręczny autor miał ku temu powody, ale końcowi użytkownicy cierpią na bojler i bezsensowne odliczanie, która liczba krotek w rezultacie. – virtualeyes
Można "wydać" pewną instancję klasy case i 'getTree.sortBy (r => r.parent_id ~ r.order)', ale rzeczywista deklaracja klasy case jest szablonem. Może nazywał się 'Tuple'-s, z konstruktorem takim jak' ('nazwa1 -> wartość1,' nazwa2 -> wartość2) 'i accessor jak' apply (name: Symbol) 'będzie przydatny w rdzeniu Scala? Na przykład: 'yield (a.id, a.label, 'parent_id -> a.parent_id,' order -> a.order, c.id.?, A = c.name)', następnie 'getTree.sortBy (r => r ('parent_id) ~ r (' order)) ' – idonnie
Czy ta odpowiedź jest nadal ważna dla wersji 2.1? POMYSŁ nie znajduje operatora ~. Czy też brakuje mi jakiegoś magicznego polecenia importu? –