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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage