3

我通过播放插件使用 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] 定义隐式排序。

任何想法?

4

1 回答 1

5

你必须先排序,然后调用.list()

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

调用时list(),您正在执行调用程序,而在 sql 级别添加排序为时已晚,当然您始终可以使用 listsortBy方法对返回的集合进行排序。

于 2014-07-08T18:05:33.300 回答