Bene, la prima cosa che devi capire è che Vaadin differisce dal framework web di richiesta/risposta convenzionale. In realtà, Vaadin è *guidato dagli eventi * framework molto simile a Swing. Costruisce un contesto applicativo dal primo clic dell'utente e lo mantiene durante l'intera visita al sito web. Il problema è che non esiste un punto di richiesta di ingresso che è possibile avviare la sessione di ibernazione e nessun punto di risposta da chiudere. Ci sono tonnellate di richieste durante un solo clic sul pulsante.
Quindi, entitymanager-per-request il modello è completamente inutile. È meglio usare un em autonomo o em-per-session pattern con hibernate.connection_release after_transaction per mantenere basso il pool di connessioni.
Per il JPAContianer, non è utilizzabile in quanto è necessario aggiornare il contenitore o gestire i bean con le relazioni. Inoltre, non sono riuscito a farlo funzionare con il caricamento batch, quindi ogni lettura di voce o relazione equivale a una selezione in DB. Non supporta il caricamento lento.
Tutto ciò di cui hai bisogno è aprire EM/sessione. Prova a utilizzare schemi suggeriti o apri EM/sessione ogni transazione e unisci prima il tuo bean.
La tua domanda è piuttosto complessa ea cui è difficile rispondere, ma spero che questi link ti aiutino a entrare in:
Strategia di rilegatura Pojo per l'ibernazione
https://vaadin.com/forum#!/thread/39712
MVP-lite
https://vaadin.com/directory#addon/mvp-lite (attenersi al modello guidato dagli eventi)