1
我的模型上有一个更新方法,它带有一个带有选项类型的类,并且我想构造一个包含动态SET的更新语句,具体取决于哪些字段具有值。使用Phanton-dsl 1.5我有类似的东西;具有可选值的幻影更新模型
import com.websudos.phantom.query.{ AssignmentsQuery => AQ }
override def updateModel(m: Upd)(implicit ec: EC): Future[Unit] = {
if (m.isEmpty) return Future.successful(())
val upd = update
upd.where(_.user_id eqs m.user_id)
val mod: AQ[CTable, Val] = new AQ(this, upd.qb.`with`())
for (first_name <- m.first_name) mod.and(_.first_name setTo first_name)
for (last_name <- m.last_name) mod.and(_.last_name setTo last_name)
mod.future.map(_ =>())
}
现在我想要移动到幻影-DSL(1.27)的最新版本,我有做与仅使用DSL相当于麻烦。由于任何字段都可能是None,因此构造第一个修改(),然后使用任意数量的and()进行处理变得困难。
有关如何处理此问题的任何建议将会有所帮助。
当我尝试“setIfDefined”我得到这个错误'setIfDefined值不是对象的X .modify(_。FIRST_NAME setIfDefined FIRST_NAME)' –
什么版本的幻象您使用的是$ 9.first_name [错误]成员? – flavian
我使用的版本是1.27.0 –