我正在使用 play 2.0 框架编写网站。解析结果时出现问题。这个对 mysql db 的请求会获取每集添加到数据库中的所有链接(每集可以有几个)以及关于剧集和动漫的所有信息。
def lastReleasedLink(limit:Long=5):List[(((Episode,Anime),Link),Genre)] = {
DB.withConnection { implicit c =>
SQL(
"""
select * from yas_episodes as a
inner join anime as b on a.ep_anime_id=b.id
left outer join yas_links as c on a.ep_id=c.ep_id
LEFT JOIN yas_animes_genres AS d ON a.ep_anime_id = d.ag_anime_id
INNER JOIN yas_genres AS e ON e.g_id = d.ag_genre_id
where c.ep_id IS NOT NULL group by c.ep_id order by c.date desc limit {limit}
""").on('limit ->limit)as(Episode.simple~Anime.simple~Link.simple~Genre.simple map{
case episode~anime~link~genre => episode -> anime -> link -> Genre
} *)
}
}
返回值是类型,List[(((Episode,Anime),Link),Genre)]
但我如何才能将输出形成到让说 List[episode,anime,Seq[links]]
或List[episode,anime,Seq[Genres],Seq[links]]
不知道将流派放在哪里的列表中。
您可以想象,当您每集有两个链接时,表格anime 和yas_episodes 的信息将被复制到每一行。所以我需要按情节记录以某种方式将它们堆叠在一起(组)。然后就可以迭代列表并访问所有对象。
如您所见,在请求中,动画与流派之间存在多对多的关系。我不知道如何将所有内容放在一个列表中以便能够在视图中访问它。流派应该是动漫模型的一部分吗?