Я пишу приложение play2.1 с mongodb, и мой объект модели немного широк. при обновлении записи в БД мне нужно сравнить временный объект, исходящий из формы, с тем, что в БД, поэтому я могу построить запрос обновления (и зарегистрировать изменения).
Я ищу способ в общем случае взять 2 экземпляра и получить их. итерация по каждому элементу данных длинна, жестко закодирована и подвержена ошибкам (если a.firstName.equalsIgnoreCase(b.firstName)), поэтому я ищу способ перебрать все элементы данных и сравнить их по горизонтали (карта имени → значение, или список, которому я могу доверять, чтобы каждый раз перечислять члены данных в одном порядке).
любые идеи?
case class Customer(
id: Option[BSONObjectID] = Some(BSONObjectID.generate),
firstName: String,
middleName: String,
lastName: String,
address: List[Address],
phoneNumbers: List[PhoneNumber],
email: String,
creationTime: Option[DateTime] = Some(DateTime.now()),
lastUpdateTime: Option[DateTime] = Some(DateTime.now())
)
все три решения ниже велики, но я все еще не могу получить имя поля, не так ли? это означает, что я могу зарегистрировать изменение, но не в каком поле это повлияло...