2016-06-01 11 views
1

私は、オブジェクトのユーザーを更新スリックに次のコードを持っている:Slick 3.xで列を省略して行を更新するには?

val users = TableQuery[UserDB] 
val action = users.filter(_.id === user.id).update(user) 
val future = db.run(action) 
val result = Await.result(future, Duration.Inf) 

をしかし、私は更新しないことをユーザーオブジェクト(パスワード)のフィールドがあります。それを省略する方法?

答えて

7

あなたはupdate操作の前にmap操作を使用して列を選択する必要があります。

case class User(name: String, age: Int, password: String, id: Int) 

val updatedUser = User("Pawel", 25, "topsecret", 123) 
val users = TableQuery[UserDB] 
val action = users.filter(_.id === updatedUser.id).map(user => 
    (user.name, user.age) 
).update(
    (updatedUser.name, updatedUser.age) 
) 
val future = db.run(action) 
val result = Await.result(future, Duration.Inf) 
関連する問題