我有一个连接许多表的查询。我希望能够参数化应检索哪些字段(有时是复杂的SQL Postgis函数)。假设初始查询是这样构建的:
def buildQuery() = for {
c <- coffees if c.price > 9.0
s <- c.supplier
} yield (c.name, s.name)
现在我希望其中一个产生的值依赖于我的参数,因此示例将变为:
val param = true
def buildQuery() = for {
c <- coffees if c.price > 9.0
s <- c.supplier
} yield (c.name, if (param) s.name else null)
这样的代码不起作用,Slick internals抛出一个NullPointerException。 有没有合理的方法可以根据输入参数动态构建yield部分?
答案 0 :(得分:0)
据我所知,你可以使用光滑的&#34;案例dsl&#34;:https://github.com/slick/slick/blob/master/src/main/scala/scala/slick/lifted/Case.scala