对于yield而言等效的光滑查询

时间:2015-11-02 13:01:27

标签: scala slick

这是使用for循环以光滑方式编写的查询。这里user是表名,我试图更新用户的firstName,lastName。当更新成功完成时,我试图将userId,firstName,lastName,false返回给用户。

(for {
  _ <- user.filter(_.id ==== id)
            .map(_.map(u => (u.firstName,u.lastName)))
            .update((firstName,lastName))
} yield (user.id.get, firstName, lastName, false))

我试图在不使用for comprehension的情况下获得等效查询。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我发现等效查询与先前的查询相同,而不使用for comprehension。

user.filter(_.id === id).map(_.map(u => (u.firstName, u.lastName)))
.update((firstName,lastName))
.map(_ => (user.id.get,firstName,lastName,false))