Hibernate saveOrUpdate vs update vs save / persist
ch habe Mühe, die kleinen Unterschiede zwischen den Winterschlafmethoden zu verstehe
saveOrUpdate - update - save/persist
.
Ich weiß, es gibt einige ähnliche Fragen auf der Website:
Was sind die Unterschiede zwischen den verschiedenen Speichermethoden im Ruhezustand?
Unterschied zwischen save und saveOrUpdate Methode hibernate
aber nachdem ich sie gelesen hatte, bemerkte ich auf keinen Fall eine Antwort, die alle Probleme abdeckte, die sich aus der Verwendung dieser Methoden ergaben. Ich möchte das Beispiel erwähnen, das ich zum Testen erstellt habe: Ich habe eine Tabelle USER mit den Datensätzen:
id | company
1 Company1
2 Company2
Ich führe dann den Code aus:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
User user1 = (User) session.load(User.class, Integer.valueOf(1));
user1.setCompany("Company3");
User user2 = (User) session.load(User.class, Integer.valueOf(2));
user2.setCompany("Company4");
session.persist(user1);
session.save(user2);
tx.commit();
Ich sehe in der Datenbank:
id | company
1 Company3
2 Company4
Ich bemerke, dasssave
undpersist
in diesem Fall mache die gleiche Aufgabe wiesaveOrUpdate
oderupdate
.Meine Frage ist daher, was ist der Unterschied zwischen ihnen und wann sindsaveOrUpdate
oderupdate
notwendig. Habe ich recht, dass mitsave
oderpersist
Die zugehörigen Objekte werden auch bei Verwendung von @ nicht aktualisierCascade
?