Scala Slick 更新
Scala Slick update
我是 scala 的新手。我必须编写更新语句来更新属性 table 中的值。
def updateValue(key: String, value: String) = Try(Tables.Properties.filter(_.key === key).map(j => j.value).update(Option(value)) ) match {
case success => println("Record sucessfully updated")
case failure => println("An error occurred")
}
上面的方法执行时没有任何错误,但是当我签入 table 时,它没有更新 table 中的任何值。我还有什么要补充的吗?
我明白了。我应该使用 db.run() 来更新。
def updateValue2(key: String, value: String) = {
val action = Tables.Properties.filter(_.key === key).map(j => j.value).update(Option(value))
db.run(action)
}
您想要 Success(x)
和 Failure(x)
,而不是 success
/failure
。
当你在 case
之后使用小写名称时,你所拥有的是一个用结果填充的变量,这意味着 case success
将始终执行(即无论变量 success
将被填充)并且 case failure
永远不会执行。
括号中的变量填充成功的结果(即Success(a)
、a
保存结果)或抛出的异常(即Failure(b)
、b
持有例外)。
我是 scala 的新手。我必须编写更新语句来更新属性 table 中的值。
def updateValue(key: String, value: String) = Try(Tables.Properties.filter(_.key === key).map(j => j.value).update(Option(value)) ) match {
case success => println("Record sucessfully updated")
case failure => println("An error occurred")
}
上面的方法执行时没有任何错误,但是当我签入 table 时,它没有更新 table 中的任何值。我还有什么要补充的吗?
我明白了。我应该使用 db.run() 来更新。
def updateValue2(key: String, value: String) = {
val action = Tables.Properties.filter(_.key === key).map(j => j.value).update(Option(value))
db.run(action)
}
您想要 Success(x)
和 Failure(x)
,而不是 success
/failure
。
当你在 case
之后使用小写名称时,你所拥有的是一个用结果填充的变量,这意味着 case success
将始终执行(即无论变量 success
将被填充)并且 case failure
永远不会执行。
括号中的变量填充成功的结果(即Success(a)
、a
保存结果)或抛出的异常(即Failure(b)
、b
持有例外)。