我使用 Slick 对提升的实体进行更新。此代码更新 Contact 对象的 firstName:
def updateContact(id: Int, firstName: Option[String]): Unit = {
  val q1 = for {
    c <- Contacts
    if c.id is id
  } yield c.firstName
  // Update value with same or new value
  q1.update(firstName.getOrElse(q1.list().head))
}
此处的选项对于更新值已经很有用,以防它是 Some (尽管如果仅在有新值时才进行更新会更好)。
我正在寻找的是一种通过 ID 查询对象的方法,然后使用 getOrElse 在内存中进行所有更新,然后对整个对象进行更新。
否则,我必须为有效的对象的每个字段运行上述内容,但你知道,感觉就像一个肮脏的黑客。