itération sur le cas de la classe de données des membres

Je suis en train d'écrire une play2.1 application avec mongodb, et mon modèle d'objet est un peu vaste. lors de la mise à jour d'une entrée dans la base de données, j'ai besoin de comparer la température de l'objet à venir à partir de la forme avec ce qui est dans la DB, donc je peux construire la requête de mise à jour (et enregistrer les modifications).

je suis à la recherche d'un moyen de génériquement prendre 2 instances et obtenir un diff. itération sur chaque membre de données est longue, codée en dur et sujettes à erreur (si un.prénom.equalsIgnoreCase(b.prenom)) donc je suis à la recherche d'un moyen pour itérer sur tous les membres de données et de les comparer à l'horizontale (une carte de nom -> valeur de la faire, ou une liste que je peux faire confiance à énumérer les membres de données dans le même ordre à chaque fois).

des idées?

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())
)

tous les trois solutions ci-dessous sont grands, mais je ne peux toujours pas obtenir le nom du champ, à droite? cela signifie que je peux me connecter le changement, mais pas dans quel domaine il a touché...

Pourriez-vous poster quelques extraits de code? Vos classes de cas, des exemples de cas et le résultat que vous souhaitez réaliser?

OriginalL'auteur Ehud Kaldor | 2013-07-24