我通过播放插件使用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]定义隐式排序。
有什么想法吗?
答案 0 :(得分:5)
您必须先排序,然后致电.list()
:
tasks.sortBy(_.id.desc).list()
调用list()
时,你正在执行调用者,而且在sql级别添加排序为时已晚,当然你总是可以使用list sortBy
方法对你得到的集合进行排序。 / p>