我想只在行有有效數據的情況下更新行中的某一列。具體來說:我有一個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) } ... } }
我認爲這是沒有辦法的辦法這個問題應如何解決。 你能建議嗎? 也許只有一個db.run就足夠了?