PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Enregistrer les modifications dans la base de données vaadin

Eh bien, la première chose que vous devez réaliser est que Vaadin diffère du framework Web de requête/réponse conventionnel. En fait, Vaadin est *axé sur les événements * cadre très similaire à Swing. Il crée un contexte d'application dès le premier clic de l'utilisateur et le conserve pendant toute la visite du site Web. Le problème est qu'il n'y a pas de point de demande d'entrée, vous pouvez démarrer la session d'hibernation et aucun point de réponse à fermer. Il y a des tonnes de requêtes lors d'un simple clic sur un bouton.

Donc, entitymanager-per-request modèle est complètement inutile. Il est préférable d'utiliser un em autonome ou em-par-session modèle avec hibernate.connection_release after_transaction pour maintenir le pool de connexions bas.

Pour le JPAContianer, il n'est pas utilisable dans la mesure où vous avez besoin de rafraîchir le conteneur ou de manipuler des beans avec des relations. De plus, je n'ai pas réussi à le faire fonctionner avec le chargement par lots, donc chaque lecture d'entrée ou de relation équivaut à une sélection vers DB. Ne prend pas en charge le chargement différé.

Tout ce dont vous avez besoin est une EM/session ouverte. Essayez d'utiliser les modèles suggérés ou ouvrez EM/session à chaque transaction et fusionnez d'abord votre bean.

Votre question est assez complexe et difficile à répondre, mais j'espère que ces liens vous aideront à comprendre :

Stratégie de liaison Pojo pour l'hibernation

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

MVP-lite

https://vaadin.com/directory#addon/mvp-lite (se tenir au modèle événementiel)