0

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 を使用してメモリ内のすべての更新を行い、オブジェクト全体を更新する方法です。

それ以外の場合は、オブジェクトの各フィールドに対して上記を実行する必要がありますが、これは汚いハックのように感じます。

4

1 に答える 1