Е, първото нещо, което трябва да осъзнаете, е, че Vaadin се различава от конвенционалната уеб рамка за заявка/отговор. Всъщност Vaadin е *управляван от събития * рамка, много подобна на Swing. Той изгражда контекст на приложението от първото кликване на потребителя и го запазва по време на цялото посещение на уебсайта. Проблемът е, че няма точка за заявка за влизане, която можете да започнете сесия на хибернация, и няма точка за отговор, която да затворите. Има тонове заявки по време на едно кликване върху бутона.
И така, entitymanager-per-request моделът е напълно безполезен. По-добре е да използвате един самостоятелен em или em-на сесия модел с hibernate.connection_release after_transaction, за да поддържа пула на връзките нисък.
За JPAContianer не може да се използва, доколкото трябва да опресните контейнера или трябва да обработвате бобове с релации. Освен това не успях да го накарам да работи с пакетно натоварване, така че всяко четене на запис или връзка се равнява на един избор към DB. Не поддържайте отложено зареждане.
Всичко, от което се нуждаете, е отворена EM/сесия. Опитайте се да използвате предложените шаблони или отваряйте EM/сесия на всяка транзакция и първо обединете своя bean.
Вашият въпрос е доста сложен и труден за отговор, но се надявам, че тези връзки ще ви помогнат да разберете:
Стратегия за свързване на Pojo за хибернация
https://vaadin.com/forum#!/thread/39712
MVP-lite
https://vaadin.com/directory#addon/mvp-lite (придържайте се към шаблон, управляван от събитие)