web-dev-qa-db-fra.com

Comment mettre à jour plusieurs colonnes avec Slick Lifted Embedding?

Comment mettre à jour plusieurs colonnes avec Slick Lifted Embedding? Ce document ne dit pas grand-chose.

Je m'attendais à ce que ce soit quelque chose comme ça

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

Je l'ai compris. Ça devrait être comme ça

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

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

Typesafe , pourquoi votre documentation est-elle si mauvaise? Je dois à peu près toutes les choses idiotes sur Google ou fouiller dans les tests unitaires pendant des heures. Veuillez l'améliorer. Merci.

74
expert

Avec Slick 2.x et 3.x, cette façon d'écrire fonctionne:

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

Veillez à ne pas oublier les parenthèses supplémentaires si vous mettez à jour plusieurs propriétés, sinon vous pourriez recevoir un avertissement du compilateur.

69
nemoo