Вычислительный столбец после внешнего соединения в Slick - PullRequest
0 голосов
/ 30 октября 2018

Я хочу сделать что-то вроде следующего:

streetTable.joinLeft(countQuery).on(_.streetId === _._1).map {
    case (_street, _cnt) => (_street.streetId, _cnt.map(_._2).ifNull(0) > 0)
}

Где countQuery имеет два столбца (Int, Int). Я хочу объединиться влево и получить логический столбец, который имеет значение true, только если число больше 0, и по умолчанию равен false, если на стороне countQuery объединения ничего не было.

Я также пытался изменить _cnt.map(_._2).ifNull(0) > 0 на _cnt.map(_._2 > 0).getOrElse(false). В обоих случаях я получаю эту ошибку компилятора:

could not find implicit value for evidence parameter of type slick.ast.TypedType[(slick.lifted.Rep[Int], slick.lifted.Rep[Int])]

Может быть полезно отметить, что я нахожусь в процессе перехода с Slick 2.1 на 3.1, и мой код 2.1, который работал, был: _cnt._2.ifNull(0.asColumnOf[Int]) > 0

Я читал руководство по обновлению Slick 3.0 и Руководство по обновлению Slick 3.1 , и я успешно перенес большую часть своего кода, это только один из немногих Коряги, которые я ударил.

...