2017-05-18 11 views
0

私はスカラと滑りやすいです。私は、プロパティテーブルの値を更新する更新ステートメントを記述する必要があります。Scala Slick更新

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") 
} 

上記の方法はエラーなしで実行されていますが、テーブルをチェックインするとテーブルの値は更新されません。ここに追加する必要があるものはありますか?

+0

あなたはすでに問題を見つけたようです。あなたは 'db.run'を見逃していました。このチュートリアルは、以前に書いたようなものです。http://pedrorijo.com/blog/play-slick/コード例はhttps://github.com/pedrorijo91/play-で、 slick3-steps/tree/step3 – pedrorijo91

+0

ありがとうございました。私はそれを行くだろう –

答えて

1

問題が発生しました。 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) 
} 
1

あなたはSuccess(x)Failure(x)、ないsuccess/failureをしたいです。あなたはcase後に小文字の名前を使用するときに持っている何

case successは必ず実行されます(変数successが移入されますが起こる、すなわち何でも)とcase failureは実行しないことを意味した結果、移入変数です。

括弧内の変数(すなわちFailure(b)b例外を保持している)、成功した結果が取り込ま(すなわちSuccess(a)a結果を保持する)、または例外がスローされます。

+0

それを得た。説明ありがとう –

関連する問題