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)