我有這樣的Scala代碼,但它並沒有給排序列表:如果我只用這條線之下我得到的排序列表沒有排序斯卡拉光滑查詢
val itemList = items.sortBy(_.name).filter(_.categoryId === catId).drop(start)
是
def getItemsByCategoryId(catId: Long, start: Int = 0, limit: Option[Int] = None): Future[Seq[(Item, Seq[String])]] = {
val itemList = items.sortBy(_.name).filter(_.categoryId === catId).drop(start)
val q = for {
(j, pair) <- itemList joinLeft (groups join tags on (_.tagId === _.id)) on (_.id === _._1.itemId)
} yield (j, pair)
db.run(q.result).map { (row) =>
row.groupBy(_._1).map { x =>
val tags = x._2.map(_._2).flatten
(x._1, tags.map(_._2.keyword))
}.toSeq
}
}
join/groupBy操作以某種方式影響排序?
是的,他們做了,並在一個非常大的方式。所以如果你想要排序的結果,那麼你將不得不再次排序。 –