Estoy trabajando en una arquitectura Hibernate/JPA/Spring/Zk, y multiplico las preguntas en estos días porque tengo que aprender mucho framework.OpenSessionInView vs PersistentContext (Extendida)
Tengo una pregunta que me deja perplejo durante varios días.
Escucho sobre el "patrón" OpenSessionInView para mantener viva una transacción de Hibernate para hacer una carga diferida. Muchos también dicen que el patrón no es muy limpio.
Y, por otra parte, se dice que PersistentContext extended no es seguro para subprocesos y, por lo tanto, no es adecuado para mantener vivo el entityManager.
Entonces, ¿cuál es la solución real a estos problemas? Supongo que estos problemas surgen de la introducción de ajax que permite más posibilidades, especialmente con el uso de la carga diferida para cargar algunas colecciones pesadas cuando sea necesario.
Por un momento, probé @PersistenceContext en modo extendido. Está funcionando ... Tuve que configurarlo para mis pruebas JUnit, y está funcionando también en mi aplicación web con carga diferida sin más configuraciones.
¿Es que la evolución del framework (Spring, JPA 2.0) significa que ahora es más fácil y más "limpio" trabajar con PersistentContext?
Si este no es el caso, ¿deberíamos usar OpenSessionInViewFilter desde Spring y reemplazar el PersistentContext en modo transaccional?
Gracias.