Sono nuovo per l'intera faccenda del JPA quindi ho più domande sul modo migliore di gestire l'unione e la persistenza JPA.Il modo migliore per gestire l'unione JPA?
Ho un oggetto utente che dovrebbe essere aggiornato (alcuni valori come la data e il nome). Devo prima unire l'oggetto passato o è più sicuro trovare il nuovo oggetto?
Attualmente il mio codice per l'aggiornamento di un utente si presenta così:
public void updateUserName(User user, String name) { // maybe first merge it? user.setName(name); user.setChangeDate(new Date()); em.merge(user); }
Come posso essere sicuro che l'utente non è stato manipolato prima che il metodo di aggiornamento si chiama? È più sicuro fare qualcosa del genere:
public void updateUserName(int userId, String name) { User user = em.getReference(User.class, userId); user.setName(name); user.setChangeDate(new Date()); em.merge(user); }
Forse altre soluzioni? Ho visto più video e ho visto molti esempi, ma erano tutti diversi e nessuno ha spiegato quale fosse la migliore pratica.
Qual è l'approccio migliore per aggiungere bambini alle relazioni? Ad esempio il mio oggetto utente ha una connessione a più gruppi. Dovrei chiamare il gestore JPA per gli utenti e aggiungere il nuovo gruppo all'elenco di gruppi di utenti o dovrei creare il gruppo in un gestore di gruppi con persistente e aggiungerlo manualmente al mio oggetto utente?
speranza che qualcuno qui ha un indizio;)
Vedi http://stackoverflow.com/questions/1069992/jpa-entitymanager-why-use-persist-over-merge – GKislin