Если у вас есть экраны, которые хранят несколько тысяч записей в сеансе (очевидно, в зависимости от того, насколько велики эти записи) в течение длительного периода времени, конечно, у вас будут проблемы.
Как решить проблему, зависит от множества факторов.
- Это данные всего приложения, которые можно хранить в одном месте?
- Можете ли вы кэшировать их либо на уровне Hibernate (как с ehcache), либо в ...
- ... внешний кеш, который находится между приложением и БД?
- Нужно ли хранить все данные в этих записях или небольшое подмножество(как идентификатор и метка) достаточно?
И т.д.