Tôi mới tham gia JPA/OpenJPA và tôi nhận thấy rằng nếu tôi không gọi EntityManager.clear()
sau khi tôi duy trì các pháp nhân, tôi nhận được OutOfMemoryError
(Tôi tiếp tục thêm các thực thể mới trong một vòng lặp). Tôi không chắc chắn nếu đây là hành vi dự kiến hoặc nó chỉ và OpenJPA 1.2.1 trục trặc.Tôi có phải gọi EntityManager.clear() thường xuyên để tránh rò rỉ bộ nhớ không?
Vì vậy, tôi có phải tự mình tách riêng các thực thể đó không? Nếu tôi không, đó là một thực hành tốt?
Cảm ơn. ok, với các gợi ý trong các câu trả lời tôi đã tìm ra rằng tôi không được phép sử dụng chỉ một EntityManager tồn tại trong ứng dụng. Tôi nên sử dụng phạm vi phương pháp hoặc phạm vi yêu cầu [1]. Điều đó sẽ loại bỏ nhu cầu gọi em.clear(). Cảm ơn! [1] http://javanotepad.blogspot.com/2007/08/managing-jpa-entitymanager-lifecycle.html – ecerulm
Liên kết hữu ích. Tôi đã sử dụng JPA với Dependency Injection (sử dụng Seam), vì vậy đã không phải đối mặt với vấn đề tương tự. – Padmarag