J'utilise Hibernate avec son cache L1 (Session) uniquement. Je me demandais s'il était possible de le pré-peupler.Cache Hibernate L1 prérempli
Supposons que j'ai une table Item
, où chaque élément a son propre id
, et je dois émettre des requêtes comme « from Item where id = :id
»: si je pouvais effectuer une pré-charge tous les éléments à la fois que je pourrais avoir plus rapide temps de réponse (je m en utilisant Hibernate depuis une servlet sous Tomcat).
Le cache de session est un cache de très courte durée, dont la durée de vie est généralement la durée de vie d'une transaction unique: quelques millisecondes et qui n'est pas partagée entre plusieurs threads concurrents. Si vous avez besoin d'obtenir presque tous vos articles par ID dans une transaction, alors oui, vous pouvez pré-charger tous les articles. Sinon, je ne vois pas le point. –
En lisant cet article (https://community.jboss.org/wiki/UsingHibernateWithTomcat), j'avais compris qu'il fallait laisser une session ouverte pour tout le cycle de vie d'une servlet, ce qui pourrait durer bien plus que quelques secondes ... – cdarwin
Je ne peux pas accéder à cet article, mais voici ce que la documentation officielle d'Hibernate dit à propos de Session: * Un objet monothread de courte durée représentant une conversation entre l'application et le stockage persistant. Enveloppe une java.sql.Connection JDBC. * –