Je suis nouveau à la chose JPA ensemble, j'ai donc plusieurs questions sur la meilleure façon de gérer la fusion JPA et de persister.La meilleure façon de gérer la fusion JPA?
J'ai un objet utilisateur qui devrait être mis à jour (certaines valeurs comme la date et le nom). Dois-je d'abord fusionner l'objet passé ou est-il plus sûr de trouver le nouvel objet?
Actuellement mon code pour mettre à jour un utilisateur ressemble à ceci:
public void updateUserName(User user, String name) { // maybe first merge it? user.setName(name); user.setChangeDate(new Date()); em.merge(user); }
Comment puis-je être sûr que l'utilisateur n'a pas été manipulé avant que la méthode de mise à jour est appelée? Est-il plus sûr de faire quelque chose comme ceci:
public void updateUserName(int userId, String name) { User user = em.getReference(User.class, userId); user.setName(name); user.setChangeDate(new Date()); em.merge(user); }
Peut-être d'autres solutions? J'ai regardé plusieurs vidéos et vu de nombreux exemples, mais ils étaient tous différents et personne n'a expliqué quelle était la meilleure pratique.
Quelle est la meilleure approche pour ajouter des enfants à des relations? Par exemple mon objet utilisateur a une connexion à plusieurs groupes. Dois-je appeler le gestionnaire JPA pour les utilisateurs et ajouter le nouveau groupe à la liste des groupes d'utilisateurs ou dois-je créer le groupe dans un gestionnaire de groupe avec persist et l'ajouter manuellement à mon objet utilisateur?
espère que quelqu'un a ici un indice;)
Voir http://stackoverflow.com/questions/1069992/jpa-entitymanager-why-use-persist-over-merge – GKislin