Ich bin neu zu JPA/OpenJPA und ich bemerkte, dass, wenn ich EntityManager.clear()
nicht aufrufen, nachdem ich Entitäten persistentes bekomme ich eine OutOfMemoryError
(ich füge neue Entitäten in einer Schleife hinzu). Ich bin mir nicht sicher, ob dies das erwartete Verhalten ist, oder es ist einfach und OpenJPA 1.2.1 Glitch.Soll ich EntityManager.clear() oft aufrufen, um Speicherlecks zu vermeiden?
Muss ich also die Entitäten explizit trennen? Wenn ich nicht bin, ist es trotzdem eine gute Übung?
Danke. OK, mit den Hinweisen in den Antworten habe ich herausgefunden, dass ich nicht nur einen langlebigen EntityManager in der Anwendung verwenden soll. Ich sollte Method Scope oder Request Scope [1] verwenden. Das würde den Aufruf von em.clear() unnötig machen. Vielen Dank! [1] http://javanotepad.blogspot.com/2007/08/managing-jpa-entitymanager-lifecycle.html – ecerulm
Nützlicher Link. Ich hatte JPA mit Dependency Injection (mit Seam) verwendet, also hatte ich kein ähnliches Problem. – Padmarag