Sortierung Ich habe diesen Code Scala aber nicht die sortierte Liste geben:Scala Slick Abfrage nicht
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
}
}
Wenn ich nur diese Zeile verwenden unten I der sortierten Liste erhalten
val itemList = items.sortBy(_.name).filter(_.categoryId === catId).drop(start)
Ist Die Join/GroupBy-Operationen beeinflussen die Sortierung in irgendeiner Weise?
Ja, sie tun und auf eine sehr große Weise. Wenn Sie also die sortierten Ergebnisse möchten, müssen Sie erneut sortieren. –