Я сделал это, создав свой собственный поставщик кеша. Я просто переопределил EhCacheProvider и использовал свою собственную переменную для менеджера, чтобы я мог вернуть ее в статическом виде. Как только вы получите CacheManager, вы можете вызвать manager.getCache (class_name), чтобы получить Cache для этого типа сущности. Затем вы создаете CacheKey, используя первичный ключ, тип и имя класса:
CacheKey cacheKey = new CacheKey(key, type, class_name, EntityMode.POJO,
(SessionFactoryImplementor)session.getSessionFactory());
Кэш - это, по сути, карта, поэтому вы можете проверить, находится ли ваш объект в кэше, или просмотреть объекты.
Возможно, существует способ доступа к CacheProvider при первоначальной сборке SessionFactory, который позволит избежать необходимости реализации собственного.