sql >> Base de Datos >  >> RDS >> PostgreSQL

Guardar cambios en la base de datos vaadin

Bueno, lo primero que debe tener en cuenta es que Vaadin difiere del marco web convencional de solicitud/respuesta. En realidad, Vaadin está *impulsado por eventos * marco muy similar a Swing. Crea un contexto de aplicación desde el primer clic del usuario y lo mantiene durante toda la visita al sitio web. El problema es que no hay un punto de solicitud de entrada en el que pueda iniciar una sesión de hibernación y no hay un punto de respuesta para cerrar. Hay toneladas de solicitudes durante un solo clic en el botón.

Entonces, entitymanager-per-request patrón es completamente inútil. Es mejor usar un em independiente o em-per-session patrón con hibernate.connection_release after_transaction para mantener el grupo de conexiones bajo.

Para JPAContianer, no se puede utilizar en la medida en que necesite actualizar el contenedor o tenga que manejar beans con relaciones. Además, no logré que funcionara con carga por lotes, por lo que cada lectura de entrada o relación equivale a una selección de DB. No es compatible con la carga diferida.

Todo lo que necesita es abrir EM/sesión. Trate de usar patrones sugeridos o abra EM/sesión en cada transacción y fusione su bean primero.

Tu pregunta es bastante compleja y difícil de responder, pero espero que estos enlaces te ayuden a entrar en:

Estrategia de vinculación de Pojo para hibernate

https://vaadin.com/forum#!/thread/39712

MVP-lite

https://vaadin.com/directory#addon/mvp-lite (manténgase en el patrón basado en eventos)