我正在尝试执行以下操作:
streetTable.joinLeft(countQuery).on(_.streetId === _._1).map {
case (_street, _cnt) => (_street.streetId, _cnt.map(_._2).ifNull(0) > 0)
}
countQuery
有两列,(整数,整数)。我想向左联接,并获得一个布尔列,该布尔列仅在计数大于0时才为true,如果联接的countQuery
端没有任何内容,则默认为false。
我还尝试将_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 upgrade guide和Slick 3.1 upgrade guide,并且已经成功迁移了大部分代码,这只是我遇到的少数障碍之一。