Одним из решений может быть использование EHCache в приложении Hibernate, но вы говорите, что у вас нет никакого контроля над ним ...
Таким образом, единственный способ, который я вижу для вас, состоит в том, чтобы минимизировать затраты и использовать множество различных областей кэша и сделать недействительной только небольшую часть ваших кэшированных данных (так же, как вы делаете это сейчас).