Jestem nowy w całej sprawie JPA, więc mam wiele pytań o najlepszy sposób obsługi JPA i utrzymywania.Najlepszy sposób obsługi scalania JPA?
Mam obiekt użytkownika, który powinien zostać zaktualizowany (niektóre wartości, takie jak data i nazwa). Czy najpierw muszę scalić przekazany obiekt, czy bezpieczniej jest znaleźć nowy obiekt?
Obecnie mój kod do aktualizacji użytkownika wygląda następująco:
public void updateUserName(User user, String name) { // maybe first merge it? user.setName(name); user.setChangeDate(new Date()); em.merge(user); }
Jak mogę mieć pewność, że użytkownik nie zostało zmanipulowane, zanim metoda aktualizacji nazywa? Czy bezpieczniej jest zrobić coś takiego:
public void updateUserName(int userId, String name) { User user = em.getReference(User.class, userId); user.setName(name); user.setChangeDate(new Date()); em.merge(user); }
Może inne rozwiązania? Oglądałem wiele filmów i widziałem wiele przykładów, ale wszystkie były inne i nikt nie wyjaśnił, jaka jest najlepsza praktyka.
Jakie jest najlepsze podejście do dodawania dzieci do relacji? Na przykład mój obiekt użytkownika ma połączenie z wieloma grupami. Czy powinienem wywołać procedurę obsługi JPA dla użytkowników i po prostu dodać nową grupę do listy grup użytkowników, czy też powinienem utworzyć grupę w procedurze obsługi grup z persistem i dodać ją ręcznie do mojego obiektu użytkownika?
nadzieję, że ktoś tutaj ma pojęcia;)
Zobacz http://stackoverflow.com/questions/1069992/jpa-entitymanager-why-use-persist-over-merge – GKislin