Bonjour,
j'ai un peu de mal à comprendre comment fonctionne du cache hibernate, j'aimerais avoir quelques éclaircissements sur les points suivants :
Prenons deux entités simples (Catégorie et Produit). Une catégorie contient plusieurs produits et un produit appartient à une catégorie. On utilise donc une relation @OneToMany/@ManyToOne que l'on définit en Lazy Loading.
Lorsque j'appelle la méthode getProducts de mon objet Category, est-ce que cette collection de Produits sera mise dans le cache de premier niveau (le cache Session) ? Si je refais un second appel à la méthode getProducts, va-t-il refaire une requête Select ou va-t-il chercher la collection dans le cache de premier niveau ?
Concernant le cache de second niveau, je choisis de mettre la collection getProducts dans le cache de second niveau.
J'appelle une première fois la méthode getProducts. Plus tard dans l'application, j'update les champs d'un Produit appartenant à cette collection et je rappelle ensuite une seconde fois la méthode getProducts.
Est-ce qu'il va refaire une requête Select afin d'obtenir les nouvelles données du produit qui ont été modifiées ou va-t-il chercher la collection dans le cache avec les données du produit non mises à jour ?
Si vous connaissez certains articles sur internet traitant du cache hibernate avec quelques exemples à l'appui, je suis preneur.
Partager