В примерах Slick есть несколько примеров объединения, когда один из результирующих столбцов может быть нулем, так как это может иметь место при выполнении левого, правого или внешнего объединений. Например:
val explicitLeftOuterJoin = for {
(c, s) <- Coffees leftJoin Suppliers on (_.supID === _.id)
} yield (c.name, s.name.?)
Но что, если я хочу вернуть весь отображаемый объект? Я имею в виду:
val explicitLeftOuterJoin = for {
(c, s) <- Coffees leftJoin Suppliers on (_.supID === _.id)
} yield (c, s.?)
Это не работает, поскольку он жалуется на "не смог найти неявное значение для параметра доказательства типа scala.slick.lifted.TypeMapper [Suppliers]". В основном я бы хотел, чтобы он вернул список кортежей (Coffee, Option [Supplier])
Почему это не работает и что за это исправление? Тем более, что это прекрасно работает:
val q = for {
c <- Coffees
s <- Suppliers
} yield (c, s)
(Я знаю, что внутреннее соединение)