作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大约一年前,对于 slick 2.x ( scala slick one-to-many collections ),基本上也有人问过同样的问题。我想知道 react 性浮油的发布是否有任何进展。
例如,假设我们有三个表。 library
, book
和 library_to_book
图书馆有很多书。我想要的是一个图书馆的 list ,里面有他们的书。在 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])]
类型的结果反而?编写此类查询的“巧妙方式”是什么?
最佳答案
IMO 你的代码看起来不错。这真的取决于你觉得什么更具可读性。或者,您可以使用 加入还有:
val findBooksQuery = libraries
.join(libraryToBooks).on(_.id === _.libraryId)
.join(books).on(_.id === _._2.bookId)
.result
val action = (for {
booksResult <- findBooksQuery
} yield {
booksResult.map { row =>
val (libraryTableRow, libraryToBooksTableRow) = row._1
val booksTableRow = row._2
// TODO: Access all data from the rows and construct desired DS
}
}
db.run(action)
val findBooksQuery = libraries
.join(libraryToBooks).on(_.id === _.libraryId)
.join(books).on(_.id === _._2.bookId)
// To group by libraries.id
.groupBy(_._1.id)
.result
关于scala - 光滑的 3.0.0 : How to query one-to-many/many-to-many relations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30567365/
我是一名优秀的程序员,十分优秀!