SortBy项目完成日期不起作用

时间:2016-04-14 01:50:39

标签: scala sorting playframework-2.0 left-join slick

我正在尝试使用slickDB在scala中运行查询。 它将根据完成日期对不同的项目ID进行排序。 它给了我错误值project_finish_date不是(models.Projects.type,models.ProjectInfo.type)的成员。 我用id替换了project_finish_date,它没有给出任何错误。 但是,当我尝试sortBy project_finish_date时,它会出错。

def getIDsSortedByFinishDate()(implicit session: Session): List[String] = {
(for {
  (p, t) <- Projects leftJoin ProjectData on (_.id === _.project_id) 
    } yield (p,t)).sortBy{ _.project_finish_date }.map {_.id}.list.distinct
}

数据类型是:

project_finish_data:选项[日期]

id = Int

提前感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

如果你屈服于元组那么你应该在sortBy中使用元组作为参数并映射如下:

def getIDsSortedByFinishDate()(implicit session: Session): List[String] = {
(for {
  (p, t) <- Projects leftJoin ProjectData on (_.id === _.project_id) 
    } yield (p,t)).sortBy{ case(p, t) => t.project_finish_date }.map { case(p, t) => p.id}.list.distinct
}

答案 1 :(得分:0)

看起来您在问题中写了project_finish_date,但在使用project_finish_data的代码块中。这可能是问题吗?