首页 文章

光滑更新可选字段

提问于
浏览
1

我正面临一个非常烦人的问题,光滑的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

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

    Only update username:

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

    你可以在 _.phoneNumber.isDefined 上过滤,

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

相关问题