행에 유효한 데이터가있는 경우에만 행의 특정 열을 업데이트하려고합니다. 구체적으로 : 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으로 충분합니까?