Я новичок в JPA/OpenJPA, и я заметил, что если я не позвоню EntityManager.clear()
после того, как я сохраняю объекты, я получаю OutOfMemoryError
(я продолжаю добавлять новые сущности в цикл). Я не уверен, что это ожидаемое поведение, или это просто и проблема с OpenJPA 1.2.1.Должен ли я часто называть EntityManager.clear(), чтобы избежать утечек памяти?
Итак, мне нужно явно отделить объекты от себя? Если это не так, это хорошая практика?
Спасибо. хорошо, с подсказками в ответах, которые я понял, что я не должен использовать только один долгоживущий EntityManager в приложении. Я должен использовать область действия метода или область запроса [1]. Это устранит необходимость вызова em.clear(). Благодаря! [1] http://javanotepad.blogspot.com/2007/08/managing-jpa-entitymanager-lifecycle.html – ecerulm
Полезная ссылка. Я использовал JPA с Injection Dependency Injection (используя Seam), поэтому не сталкивался с подобной проблемой. – Padmarag