光滑更新可选字段

时间:2016-09-20 15:23:52

标签: sql scala slick

我正面临一个非常烦人的问题,光滑的3.0.x:

让我们考虑一下:

case class DbUser(id: Int, username: String, phoneNumber: Option[String], email: Option[String])

val user = DbUser(1, "User", None)

如果我跑:

users.filter(_.id === user.id).update(user)

然后,即使我发送的数据为None,字段的phonenumber也将设置为null,但我知道,如果没有定义这个字段,我怎么能不更新字段呢?任何想法>

2 个答案:

答案 0 :(得分:0)

要仅更新选择字段,请执行以下操作

仅更新用户名:

users.filter(_.id === user.id)
  .map(_.username)
  .update(user.username)

答案 1 :(得分:0)

您可以对_.phoneNumber.isDefined

进行过滤
 import driver.api._

 users.filter(_.phoneNumber.isDefined)
   .map(_.phoneNumber)
   .update(Some("3543453545"))