В принципе, тот же вопрос задавался примерно год назад для слайков 2.x(scala коллекций "один-ко-многим" ). Мне интересно, есть ли какие-либо улучшения с выпуском реактивного пятна.
Скажем, например, у нас три таблицы. library
, book
и library_to_book
, где в библиотеке много книг. Мне нужен список библиотек с их книгами. В scala это будет что-то вроде Seq[(Library, Seq[Book])]
. Запрос, который у меня есть, следующий:
val q = (for {
l <- libraries
ltb <- libraryToBooks if l.id === ltb.libraryId
b <- books if ltb.bookId === b.id
} yield (l, b)
db.run(q.result).map( result => ??? )
results
в этом случае имеет тип Seq[(Library, Book)]
. Как мне изменить свой запрос, чтобы получить результат типа Seq[(Library, Seq[Book])]
вместо этого? Что такое "гладкий способ" написания таких запросов?