У меня ужасная проблема, у которой, надеюсь, есть очень простой ответ. У меня заканчивается память, когда я выполняю базовый
Если у меня есть такой код:
MyEntity myEntity;
for (Object id: someIdList) {
myEntity = find(id);
// do something basic with myEntity
}
И метод find () является стандартным методом, связанным с EntityManager:
public MyEntity find(Object id) {
return em.find(mycorp.ejb.entity.MyEntity.class, id);
}
Этот код работал пару недель назад и отлично работает, если в базе данных меньше элементов. В результате возникает ошибка:
java.lang.OutOfMemoryError: превышен лимит накладных расходов GC
Исключение исходит от oracle toplink, вызывающего некоторые методы oracle jdbc.
Цикл существует, потому что EJBQL, такой как «select object (o) from MyEntity as o», будет перегружать сервер приложений при большом количестве записей.