行に有効なデータがある場合のみ、行の特定の列を更新したいと考えています。具体的にはEvent
のテーブルがあり、start
、stop
、isActive
フラグが格納されています。 isActive
をtrue
に設定して、一部のEvents
を有効にしますが、開始日と終了日が有効かどうかを確認する必要があります。 モデル:条件が満たされた場合のみ行を更新する
case class Event {start:DateTime, stop:DateTime, isActive:Boolean}
私の検証メソッドのシグネチャ:
validateEvent(ev: Event): Boolean
私の最初のアプローチ:
def activateEv() = Action.async(parse.json) { request => { ... val ev = db.run(dao.findEvById(poid, uid)) val ret = ev.flatMap { case st: Option[Event] => if (validateEvent(st.get)) { db.run(dao.updateActivity(poid, true).map { case 0 => false case other => true } } else Future(false) } ... } }
私はそれがこの問題に対処する必要があるかの方法ではないと信じています。 アドバイスありますか? 1つのdb.runで十分でしょうか?