我想只在行有有效数据的情况下更新行中的某一列。具体来说:我有一个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就足够了?