Slick和leftjoin:结果元组上的类型错误

时间:2013-03-07 10:02:32

标签: slick

我正在尝试与Slick进行左联接。

我有两个案例类(书和作者)和两个表

如果我这样做:

(for {
       (book, author) <- Books leftJoin Authors on (_.authorId === _.id)
     } yield (book, author.?)
).list

结果是List [Book,Option [Authors.type]],我需要一个List [Book,Option [Author]]

你知道为什么我的查询输错了吗?

注意:我的作者对象与作者案例类很好地链接:

object Authors extends Table[Author]("author"){...}

谢谢:)

卢瓦克

1 个答案:

答案 0 :(得分:0)

我有一个解决方法,但我不知道它是否是正确的解决方案。

我检索作者可选列,然后在结果上使用map函数来创建(Book,Author)元组对象。

val query = for {
(book, author) <- Books leftJoin Companies on (_.authorId === _.id)
} yield (book, author.id.?, author.name.?)

val result = query.list.map(row => (row._1, row._2.map(value => Author(Option(value), row._3.get))))