Junior — Middle
Ποια μεθόδους χρησιμοποιείς για τη διαχείριση του κύκλου ζωής των αντικειμένων στο Hibernate;
sobes.tech AI
Απάντηση από AI
Στο Hibernate, η διαχείριση του κύκλου ζωής των αντικειμένων πραγματοποιείται μέσω διαφόρων μεθόδων και καταστάσεων των οντοτήτων:
- save() / persist() — αποθηκεύουν ένα νέο αντικείμενο στη βάση δεδομένων και το μεταφέρουν στην κατάσταση «διαχειριζόμενο» (persistent).
- update() / merge() — ενημερώνουν ένα υπάρχον αντικείμενο ή συγχωνεύουν την κατάσταση ενός αποσυνδεδεμένου αντικειμένου με το τρέχον πλαίσιο.
- delete() — διαγράφουν ένα αντικείμενο από τη βάση δεδομένων.
- evict() — αφαιρούν ένα αντικείμενο από τη συνεδρία και το μεταφέρουν στην κατάσταση «αποσυνδεδεμένο» (detached).
- refresh() — ενημερώνουν την κατάσταση του αντικειμένου από τη βάση δεδομένων.
Ο κύκλος ζωής ενός αντικειμένου στο Hibernate περιλαμβάνει τις καταστάσεις: transient (προσωρινό, μη συσχετισμένο με συνεδρία), persistent (διαχειριζόμενο από τη συνεδρία), detached (αποσυνδεδεμένο από τη συνεδρία).
Παράδειγμα:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
// Δημιουργία και αποθήκευση ενός αντικειμένου
User user = new User();
user.setName("John");
session.save(user); // το αντικείμενο γίνεται persistent
// Ενημέρωση του αντικειμένου
user.setName("John Doe");
session.update(user);
// Διαγραφή του αντικειμένου
session.delete(user);
tx.commit();
session.close();
Έτσι, οι μέθοδοι του Hibernate επιτρέπουν τον έλεγχο της κατάστασης των αντικειμένων και της συγχρονισμού τους με τη βάση δεδομένων.