У меня есть запрос на объединение многих таблиц. Я хотел бы иметь возможность параметризовать, какие поля следует извлекать (иногда сложные функции 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 выдают исключение NullPointerException. Есть ли разумный способ динамически построить часть доходности на основе входных параметров?