Когда очищается кэш первого уровня в спящем режиме? - PullRequest
0 голосов
/ 30 мая 2019

Я немного растерялся, когда в весеннем приложении очищается кэш первого уровня (сеанса гибернации?). Я выполняю очень долгую работу, которая читает много данных, и в какой-то момент у приложения заканчивается память. Я предполагаю, что кешированный объект вызывает проблему.

Изначально я думал, что закрытие транзакции приведет к очистке кэша, и чтение записей из базы данных по одному в методе @Transactional(propagation=REQUIRES_NEW) должно решить проблему. Но, к сожалению, приложению все еще не хватает памяти. Весь код может уже выполняться внутри транзакции. Использует ли Hibernate один и тот же кэш / сеанс для нескольких или вложенных транзакций? Все мои выборы выполняются с помощью весенних репозиториев (поэтому я не использую менеджер сущностей напрямую). Это единственный способ очистить кеш, вызвав метод session.clear () вручную или закрыв последнюю родительскую транзакцию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...