【发布时间】:2016-07-09 12:25:34
【问题描述】:
仅当行具有有效数据时,我才想更新行中的某个列。具体一点:我有一张带有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 就足够了?
【问题讨论】:
标签: scala playframework slick slick-3.0