Pregunta

Soy nuevo en el JPA/OpenJPA y me di cuenta de que si no me llame EntityManager.clear() después de que persisten las entidades que conseguir una OutOfMemoryError (Sigo sumando nuevas entidades en un bucle).No estoy seguro de si este es el comportamiento esperado o es sólo y OpenJPA 1.2.1 glitch.

Así que, ¿estoy obligado a separar explícitamente las entidades a mí mismo?Si no estoy, es una buena práctica, de todos modos?

¿Fue útil?

Solución

No tengo mucha experiencia con APP. Sin embargo, esto va a ser útil -
En APP debe:
- Crear un nuevo EntityManager para cada transacción
. - Llamada claro () después de cada transacción para borrar el contexto de persistencia

.

Otros consejos

depende de la cantidad de objetos que introducir en el proceso de persistencia (leer). Si usted maneja un gran número (o algunos de los objetos es grande) entonces uso de clear () puede tener sentido. Cada vez que un objeto se lee que se debe poner en la caché L1 por la impl APP.

Suena como que hay algo mal en algún lugar, en su diseño.Generalmente, la entidad obtiene separado una vez que está fuera del alcance de administrador de la entidad.Y esa es una de la razón por la que no puede la carga perezosa de relaciones, fuera del ámbito de aplicación.

En cuanto a mi experiencia se refiere, yo rara vez utilizado em.clear(), si alguna vez.He utilizado implementación de Hibernate, y Toplink Essentials.No hay experiencia con OpenJPA, sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top