Cóż, pierwszą rzeczą, którą musisz sobie uświadomić, jest to, że Vaadin różni się od konwencjonalnych frameworków internetowych typu żądanie/odpowiedź. Właściwie Vaadin jest *napędzany wydarzeniami * framework bardzo podobny do Swinga. Buduje kontekst aplikacji od pierwszego kliknięcia użytkownika i utrzymuje go podczas całej wizyty na stronie. Problem polega na tym, że nie ma punktu żądania wejścia, w którym można uruchomić sesję hibernacji, ani punktu odpowiedzi do zamknięcia. Istnieje mnóstwo próśb za jednym kliknięciem przycisku.
A więc menedżer-jednostek-na-żądanie wzór jest całkowicie bezużyteczny. Lepiej jest użyć jednego samodzielnego em lub em-na-sesję wzorzec z hibernate.connection_release after_transaction, aby utrzymać niską pulę połączeń.
Dla JPAContianer nie jest on użyteczny, o ile musisz odświeżyć kontener lub musisz zająć się ziarnami z relacjami. Nie udało mi się też uruchomić go z ładowaniem wsadowym, więc każdy odczyt wpisu lub relacji równa się jednemu zaznaczeniu do DB. Nie obsługuj leniwego ładowania.
Wszystko czego potrzebujesz to otwarty EM/sesja. Spróbuj użyć sugerowanych wzorców lub otwieraj EM/sesję przy każdej transakcji i najpierw połącz swoje ziarna.
Twoje pytanie jest dość złożone i trudno na nie odpowiedzieć, ale mam nadzieję, że te linki pomogą Ci w dotarciu do:
Strategia wiązania Pojo dla hibernacji
https://vaadin.com/forum#!/thread/39712
MVP-lite
https://vaadin.com/directory#addon/mvp-lite (należy trzymać się wzorca opartego na zdarzeniach)