| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Hibernate, утечка памяти? |
| Автор: unkis 1.5.2007, 12:25 | ||
| Ребята надо сохранять около 800000 объектов, в памяти деожпать я их не могу, поэтому сохраняю по 5000. То есть у меня есть ArrayList в который я добавляю объекты и проверяю делится ли без остатка на 5000 если да то сохраняй и создавай новый ArrayList, и опять всё заново. Проблема в том что после сохранения первых 5000 Hibernate не отдаёт память обратно, собственно вот и вопрос почему?
Сохранение как видно из кода происходит следующим образом, начинается транзакция, потом 5000 объектов делаются prsistent и только потом они все делаются comit и сохраняются в БД. Вот после этого comit, я так понимаю, память и должна отдаваться обратно, но не отдаётся. |
| Автор: tux 1.5.2007, 14:04 |
| Пока сессию не закроешь все объекты хранятся в кэше этой сессии. |
| Автор: unkis 1.5.2007, 14:55 | ||||
| ага спасибо, только что-то всё равно не работает, После того как comit();, добавил вот это entityManager.clear(); то есть очищаю cash. но теперь, когда он хочет сохранить следующие 5000 при попытке поиска то есть
вываливается вот такое Exception.
Что опять не так? |
| Автор: Tony 2.5.2007, 17:56 |
| java.lang.StackOverflowError .Огромная коллекция. |