0
我使用Play2 + Scala + ReactiveMongo构建Web应用程序。由于mongodb
不要求所有文档具有相同的结构,因此我使用Options
作为参数来实现模型的案例类大量使用。例如:Play2 Scala模型 - 合并对象
case class PersonInfo(address: Option[String],
telephone: Option[String],
age: Option[Int],
job: Option[String])
case class Person(id: UUID, name: String, info: PersonInfo)
现在假设我想在一个更新功能合并两个PersonInfo
对象,例如。我现在的问题是:
val updPInfo = old.copy(address = new.address orElse address,
telephone = new.telephone orElse telephone,
age = new.age orElse age,
job = new.job orElse job)
这样,我有了在那里他们被new
对象,老值,其余的指定新值的对象。
这实际上工作正常,但看到参数列表增长时有点难看。
有没有更好的方法来做到这一点?