相关疑难解决方法(0)

Slick:动态sortBy在具有左连接的查询中

这是另一个问题的问题.我需要能够在具有左连接的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)

scala slick slick-2.0

2
推荐指数
1
解决办法
2968
查看次数

标签 统计

scala ×1

slick ×1

slick-2.0 ×1