2013-03-07 66 views
2

我正在尝试与Slick进行左连接。油滑和左连接:结果元组上的错误类型

我有两个case类(Book和Author)和2台

如果我这样做:

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

结果是一个列表[图书,选项[Authors.type]和我需要列表[书,选项[作者]]

你知道为什么我的查询得到错误的类型吗?

注:我的作者对象链接以及与作者的情况下类:

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

谢谢:)

卢瓦克

+0

另请参阅https://groups.google.com/forum/?fromgroups=#!topic/scalaquery/be5750vbM3U – cvogt 2013-03-14 17:24:40

回答

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))))