Tja, det första du behöver inse är att Vaadin skiljer sig från konventionella webbramverk för begäran/svar. Egentligen är Vaadin *händelsestyrt * ram mycket lik Swing. Den bygger en applikationskontext från användarens första klick och håller den under hela webbplatsbesöket. Problemet är att det inte finns någon ingångsbegäran du kan starta viloläge och ingen svarspunkt att stänga. Det finns massor av förfrågningar under ett enda klick på knappen.
Så, entitymanager-per-request mönstret är helt värdelöst. Det är bättre att använda en fristående em eller em-per-session mönster med hibernate.connection_release after_transaction för att hålla anslutningspoolen låg.
För JPAContianer är den inte användbar eftersom du behöver uppdatera behållaren eller så måste du hantera bönor med relationer. Jag lyckades inte heller få det att fungera med batchbelastning, så varje läsning av post eller relation är lika med ett urval till DB. Stöder inte lat laddning.
Allt du behöver är öppen EM/session. Försök att använda föreslagna mönster eller öppna EM/session varje transaktion och slå samman din böna först.
Din fråga är ganska komplex och svår att svara på, men jag hoppas att dessa länkar hjälper dig att komma in på:
Pojo-bindningsstrategi för viloläge
https://vaadin.com/forum#!/thread/39712
MVP-lite
https://vaadin.com/directory#addon/mvp-lite (håll dig till händelsedrivet mönster)