Question

Nous utilisons Hibernate dans notre projet. Ma question concerne les requêtes nommées. Quelqu'un peut-il me guider sur la façon dont les requêtes nommées sont traitées par Hibernate. Si Hibernate est configuré pour utiliser le cache de niveau 1, il rendrait également les résultats pour la requête nommée du cache ou fera-t-elle toujours un voyage dans la base de données?

Était-ce utile?

La solution

Le cache de niveau 1 est la session Hibernate. Sauf dans les cas très rares où une session sans état est utilisée, il y a un cache de niveau 1 par défaut. Les résultats des requêtes ne sont jamais mis en cache dans le cache de niveau 1. Je pense que vous vouliez dire "cache de second niveau".

Les requêtes nommées sont traitées exactement comme des questions sans nom concernant le cache.

Les requêtes peuvent être mises en cache ou non. S'ils sont mis en cache, un aller-retour dans la base de données peut être évité. Qu'ils soient mis en cache ou non, s'ils retournent des instances d'entités qui se trouvent dans le cache de deuxième niveau, la requête renverra les ID, puis les entités elles-mêmes seront chargées à partir du cache de deuxième niveau.

Voir Cache hibernate de 2e niveau dans une application grails et la documentation de référence pour plus d'informations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top