如何使用Slick Lifted Embedding更新多个列?

时间:2013-05-26 08:10:57

标签: scala scala-2.10 slick

如何使用Slick Lifted Embedding更新多个列? This document并没有说太多。

我预计它会是这样的

Query(AbilitiesTable).filter((ab: AbilitiesTable.type) => ab.id === ability_id).map((ab: AbilitiesTable.type) => (ab.verb, ab.subject)).update("edit", "doc")

2 个答案:

答案 0 :(得分:72)

我明白了。它应该是这样的

val map = Query(AbilitiesTable)
  .filter(_.id === ability_id)
  .map(ab => ab.verb ~ ab.context)

map.update(("", ""))

Typesafe,为什么你的文档太糟糕了?我几乎每一件傻事都要谷歌,或者通过单位测试挖几个小时。请改进它。感谢。

答案 1 :(得分:66)

使用Slick 2.x和3.x,这种写作方式有效:

Users.filter(_.id === filterId)
     .map(x => (x.name, x.age))
     .update(("john", 99))

如果要更新多个属性,请小心记住额外的括号,否则可能会收到编译器警告。