这是另一个问题的问题.我需要能够在具有左连接的Slick查询中动态传递要排序的列.在这种特殊情况下的问题是左连接表变为可选,我不知道如何处理它.如果我让桌子Company不是可选的我会得到SlickException: Read NULL value for ResultSet column Path
例:
def list(filter: String, orderBy: Int) = {
DB.withDynSession {
val data = for {
(computer, company) <- Computer.where(_.name like filter) leftJoin
Company on (_.companyId === _.id)
} yield (computer, company.?)
val sortedData = orderBy match {
case 2 => data.sortBy(_._1.name) //Works ok, column from a primary table
case 3 => data.sortBy(_._2.name) //Error "Cannot resolve symbol name", because table is optional
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面示例中使用的光滑自动生成的表类:
package tables …Run Code Online (Sandbox Code Playgroud)