我正在尝试与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"){...}
谢谢:)
卢瓦克
答案 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))))