Salut,
Je pense que les deux solutions sont possibles.
Cependant, l'une sera plus adaptée que l'autre selon la fréquence des transactions et le volume des arguments.
Ex: si une personne entre 5 adresses, et sauve dans l'appli:
- Solution 1: 1 transaction atomique est nécessaire
- Solution 2: 5 transactions atomiques sont nécessaires
La solution 2 sera dans ce cas la moins performante car nécessitera l'établissement de la connexion, la localisation de la procédure distante, l'appel distant, la fermeture de connexion et tout ça 5 fois.
Donc la solution 1 serait plus performante, puisque réalisable en un seul appel. Sauf que si une valeur Personne possède 1000 adresses et que le réseau est lent, 1 seule transaction pour l'écrire en base signifiera une transaction beaucoup plus longue.
Donc la solution 1 privilégie la sécurité et l'intégrité des données écrites (commit effectué quand l'objet Personne entier a été écrit), la solution 2 privilégie une continuité de service maximale (commit effectué à chaque adresse écrite).