是否可以在Slick中定义动态投影?

时间:2014-12-02 07:54:02

标签: scala slick

我有一个连接许多表的查询。我希望能够参数化应检索哪些字段(有时是复杂的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部分?

1 个答案:

答案 0 :(得分:0)

据我所知,你可以使用光滑的&#34;案例dsl&#34;:https://github.com/slick/slick/blob/master/src/main/scala/scala/slick/lifted/Case.scala

相关问题