Junior — Middle
Quelles méthodes utilisez-vous pour gérer le cycle de vie des objets dans Hibernate?
sobes.tech IA
Réponse de l'IA
En Hibernate, la gestion du cycle de vie des objets se fait à l'aide de différentes méthodes et états des entités:
- save() / persist() — enregistrent un nouvel objet dans la base de données, le transférant à l'état de «géré» (persistent).
- update() / merge() — mettent à jour un objet existant ou fusionnent l'état d'un objet détaché avec le contexte actuel.
- delete() — suppriment un objet de la base de données.
- evict() — retirent un objet de la session, le transférant à l'état de «détaché» (detached).
- refresh() — mettent à jour l'état de l'objet depuis la base de données.
Le cycle de vie d'un objet en Hibernate comprend les états : transitoire (temporaire, non lié à une session), persistent (géré par la session), detached (dissocié de la session).
Exemple :
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
// Création et sauvegarde d'un objet
User user = new User();
user.setName("John");
session.save(user); // l'objet devient persistent
// Mise à jour de l'objet
user.setName("John Doe");
session.update(user);
// Suppression de l'objet
session.delete(user);
tx.commit();
session.close();
Ainsi, les méthodes de Hibernate permettent de contrôler l'état des objets et leur synchronisation avec la base de données.