Sobes.tech
Junior — Middle

Comment le stockage et la récupération d'un objet du cache de premier niveau sont-ils effectués dans l'application?

sobes.tech IA

Réponse de l'IA

En Java, par exemple lors de l'utilisation de Hibernate, le cache de premier niveau est la session (Session), qui stocke les objets chargés dans le cadre d'une seule transaction. La sauvegarde d'un objet dans le cache de premier niveau se produit automatiquement lors de l'appel des méthodes de sauvegarde ou de chargement d'un objet via la session.

La récupération d'un objet du cache de premier niveau se produit lors d'une requête répétée du même objet avec le même identifiant dans le cadre d'une même session : Hibernate ne consulte pas la base de données, mais retourne l'objet du cache.

Exemple :

Session session = sessionFactory.openSession();
session.beginTransaction();

// Chargement d'un objet, il entre dans le cache de premier niveau
User user = session.get(User.class, userId);

// Lors d'un appel ultérieur à get avec le même userId, l'objet est récupéré du cache, aucune requête à la BDD n'est effectuée
User sameUser = session.get(User.class, userId);

session.getTransaction().commit();
session.close();

Ainsi, le cache de premier niveau est lié à la session et assure une optimisation en réutilisant les objets chargés sans requêtes supplémentaires à la base de données.