使用Slick Lifted Embedding如何更新多列?这份文档没有提供太多信息。
我期望它应该是类似下面这样的:
Query(AbilitiesTable).filter((ab: AbilitiesTable.type) => ab.id === ability_id).map((ab: AbilitiesTable.type) => (ab.verb, ab.subject)).update("edit", "doc")
使用Slick Lifted Embedding如何更新多列?这份文档没有提供太多信息。
我期望它应该是类似下面这样的:
Query(AbilitiesTable).filter((ab: AbilitiesTable.type) => ab.id === ability_id).map((ab: AbilitiesTable.type) => (ab.verb, ab.subject)).update("edit", "doc")
在最近版本的Slick中,这种写法可以工作:
Users.filter(_.id === filterId)
.map(x => (x.name, x.age))
.update(("john", 99))
如果您更新多个属性,请小心记住添加额外的括号,否则可能会收到编译器警告。
我想通了,应该是这样的。
val map = Query(AbilitiesTable)
.filter(_.id === ability_id)
.map(ab => ab.verb ~ ab.context)
map.update(("", ""))
Typesafe,为什么你们的文档如此糟糕?我必须要在谷歌上花费很多时间查询一些无聊的小事情或是挖掘数小时的单元测试。请改进一下吧。谢谢。
AbilitiesTable
是什么?这是指TableQuery
对象吗?类似这样的类:class CompanyTable(tag: Tag) extends Table[Company]
? - windweller
.map(x => (...))
和update(("x", "y"))
中不要忘记元组,因此需要双括号。 - kosiara - Bartosz Kosarzycki