我正在通过播放插件使用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)
}
Run Code Online (Sandbox Code Playgroud)
然后,我像这样创建了TableQuery对象
val tasks = TableQuery[Tasks]
我曾经tasks.list得到List[Task]哪个返回正确,但是当我想通过使用对结果进行排序时,tasks.list.sortBy(_.id.get.desc)
我得到了这个错误
没有为scala.slick.lifted.ColumnOrdered [Long]定义隐式Ordering。
任何的想法?
您必须先进行排序,然后致电.list():
tasks.sortBy(_.id.desc).list()
Run Code Online (Sandbox Code Playgroud)
调用时,list()您正在执行调用程序,为时已晚,无法在sql级别添加排序,当然,您始终可以使用list sortBy方法对返回的集合进行排序。