如何从Scala Slick Query对象获取表,ID信息

时间:2014-10-06 19:02:12

标签: scala slick sharding typesafe

val users = TableQuery[Users]

val query = for( user <- Users.filter(_.id === 1L) ) yield user

println(query.toNode.nodeChildNames.toBuffer)

gives something like this  => ArrayBuffer(from @1276230271, select)

如何在运行时从上面的查询中获取用户标识信息。如果查询更复杂,如

,该怎么办?
val query = for( user <- users.filter(_name === "cat")

                 post < posts.filter(_.postedBy === user.id)

                 comment <- comments.filter(_.postId === post.id) ) yield comment

从上面的查询中我们可以使用对Query对象的访问动态地访问每个查询中涉及的表名和主键。

感谢。

1 个答案:

答案 0 :(得分:0)

你必须产生一个元组(post.id,user.id,comment.id),例如:

val query = for{ user <- users.filter(_name === "cat")
                 post <- posts.filter(_.postedBy === user.id)
                 comment <- comments.filter(_.postId === post.id) }
            yield (post.id, user.id, comment.id)

query.list