没有为scala.slick.lifted.ColumnOrdered [Long]定义的隐式排序

时间:2014-07-08 17:52:08

标签: scala slick-2.0

我通过播放插件使用slick 2.0,以下是我的表格映射

class Tasks(tag: Tag) extends Table[Task](tag, "Tasks"){
    def id   = column[Option[Long]]("id", O.PrimaryKey, O.AutoInc)
    def txt  = column[String]("txt")
    def done = column[Boolean]("done")
    def * = (id, txt, done) <> (Task.tupled, Task.unapply)
}

然后,我像这样创建了TableQuery对象

val tasks = TableQuery[Tasks]

我使用tasks.list来获取正确返回的List[Task] 但是当我想使用tasks.list.sortBy(_.id.get.desc)对结果进行排序时 我得到了这个错误

  

没有为scala.slick.lifted.ColumnOrdered [Long]定义隐式排序。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您必须先排序,然后致电.list()

tasks.sortBy(_.id.desc).list()

调用list()时,你正在执行调用者,而且在sql级别添加排序为时已晚,当然你总是可以使用list sortBy方法对你得到的集合进行排序。 / p>