Вы можете использовать Hibernate Level 2 Cache (likne Ehcache ). Кэш L2 отвечает за кэширование записей в нескольких сеансах, но только за поиск по первичному ключу. Если вы хотите кешировать запросы, вы не можете сделать это с Hibernate, когда используются сеансы multipel.
Вы можете создать свою собственную отдельную реализацию кеша (также используя EhCache) и иметь некоторый централизованный способ сигнализации, когда он загрязнен записями из определенного приложения.