问题描述
我对 Scala 还很陌生。目前正在研究 scala 2 和 postgres 是 DB。现在我写了一个左内连接查询,如下所示
val executors = TableQuery[Executors]
val innerJoin = (for {
(rel,a) <- executors joinLeft executors on ( (e1,e2) => {
e1.column1 === e2.column1 && e1.column2 === e2.column2
} ) if rel.id === id
} yield rel.name)
当我尝试打印 innerJoin.result.statements.headOption
时,它给了我想要的查询
但我面临的问题不是产生 rel.name
我想要 a.name
。但我收到错误 value name is not a member of slick.lifted.Rep[Option[Executors]]
。
我检查了 slick
文档,不确定我在这里遗漏了什么。
解决方法
我已通过 a.map(_.name)
修复它。参考https://scala-slick.org/doc/3.0.0/queries.html