Używam Slick 3.0 i (oczywiście) prawie wszystkie przykłady z tamtej strony obejmują Slick 2.x. Rzeczy się zmieniły i szczerze mówiąc, wydają się być skomplikowane, nie mniej."Prawidłowy" sposób na pisanie zapytań Slick 3.0 Scala w Play Framework
Oto przykład: Chcę uzyskać obiekt (GPPerson) według id. To, co mam teraz, i wydaje bardzo rozwlekły ... bardziej niż Slick 2.x:
def get(id: GPID): Option[GPPerson] = Await.result(
db.run(
people.filter(_.id === id).result), Duration.Inf
).headOption
W Slick rzeczy 2.x było łatwiejsze ze względu na implicits, między innymi. Ale powyższe wydaje się najbardziej zwięzłym wyrażeniem, jakie wymyśliłem.
Nie zajmuje się również obsługą wyjątków, które musiałbym dodać.
Dla jasności, blokujesz swój wątek za pomocą 'Await.result'. Prawdopodobnie jesteś tego świadomy, ale po prostu przeraża to widząc go w kodzie. –
Jestem świadomy - i wszystkie przykłady z Slick 3.0 z Typesafe robią to ... – Zac