我刚刚开始使用Slick,我做了一个简单的hello world项目,其中包含帖子和评论。
我希望拥有以下数据结构:
Seq[(Post, Option[Seq[Comment]])]
然后我可以像这样迭代评论:
@for(p <- posts) {
@for(c <- posts.comments) {
@comment.title
}
}
这是我的查询:
def allWithComments = {
val q = for {
(p, c) <- Posts join Comments on (_.id === _.postsId)
} yield (p,c) // do here something fancy and map the result
db.run(q.result)
}
查询现在返回以下结构:
Seq[(models.Post, models.Comment)]
答案 0 :(得分:0)
从Seq[(models.Post, models.Comment)]
到Seq[(Post, Option[Seq[Comment]])]
您可以使用以下内容:
(qResult groupBy (_._1) map { case (k,v) => (k, Option((v map (_._2)).toSeq)) }).toSeq