Во первых, кеш запросов и кеш данных приложения, возможно и кеш отрендереных кусков страницы - совершенно разные вещи, которые , мне кажется, Вы смешали в одну кучу.
1) В hibernate есть свой кеш запросов, который настраивается кучей разных способов для работы с разными кешами. О! Даже хабра-статья оказывается есть -
habrahabr.ru/post/135176
2) Устаревание записей и прочее - прерогатива кеша работы с базой
3) Если какие-то данные должны удаляться со временем, то есть политики типа LRU, для кеша данных, возможно, придется использовать не только кеш запросов, но и кеш отрендерренных страниц.
Со статьи на хабре найдете описание основных библиотек кеширования...