Есть ли способ аккуратно выполнить операцию upsert в Slick? Следующие работы, но слишком неясные/подробные, и мне нужно явно указать поля, которые необходимо обновить:
val id = 1
val now = new Timestamp(System.currentTimeMillis)
val q = for { u <- Users if u.id === id } yield u.lastSeen
q.update(now) match {
case 0 => Users.insert((id, now, now))
case _ => Unit
}