2010-02-08 4 views
2

J'ai une collection mappée, qui met en cache bien dans le L2Cache. Dès que j'applique un filtre à la collection, le L2Cache n'est pas utilisé. Je ne peux pas utiliser une clause where dans la collection car j'en ai besoin pour être plus dynamique que ça. Quelqu'un a des idées?Hibernate Filtres briser le cache de second niveau

+0

https://hibernate.atlassian.net/browse/HHH-7186 –

Répondre

0

Un de mes collègues a eu un problème qui ressemble à celui-ci. Il a découvert que si le chargement paresseux est désactivé, une requête de jointure est utilisée par défaut pour récupérer à la fois l'entité contenant et la collection contenue. Cependant, les requêtes de jointure ne sont pas mises en cache.

Sa solution consistait à passer à la requête de sous-sélection en définissant fetch="select" dans le mappage. Les deux requêtes sont ensuite mises en cache indépendamment.

Questions connexes