web-dev-qa-db-ja.com

Slick Lifted Embeddingを使用して複数の列をどのように更新しますか?

Slick Lifted Embeddingを使用して複数の列をどのように更新しますか? このドキュメント はあまり言いません。

こんな感じでした

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

私はそれを考え出した。こんな感じ

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

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

Typesafe 、なぜあなたのドキュメントはとても悪いのですか?私は愚かなことのほとんどすべてをグーグルで調べなければならない、または何時間もユニットテストを行っている。改善してください。ありがとう。

74
expert

Slick 2.xおよび3.xでは、次のように記述します。

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

複数のプロパティを更新する場合は、余分な括弧を忘れないように注意してください。そうしないと、コンパイラの警告が表示される可能性があります。

69
nemoo