Điều đầu tiên bạn cần nhận ra là Vaadin khác với khuôn khổ web yêu cầu / phản hồi thông thường. Trên thực tế, Vaadin là * điều khiển sự kiện * khuôn khổ rất giống với Swing. Nó xây dựng bối cảnh ứng dụng ngay từ lần nhấp đầu tiên của người dùng và giữ nó trong toàn bộ lượt truy cập trang web. Vấn đề là không có điểm yêu cầu nhập, bạn có thể bắt đầu phiên ngủ đông và không có điểm phản hồi nào để đóng. Có rất nhiều yêu cầu trong một lần nhấp vào nút.
Vì vậy, entitymanager-per-request mô hình là hoàn toàn vô dụng. Tốt hơn là sử dụng một em độc lập hoặc em-mỗi phiên với hibernate.connection_release after_transaction để giữ cho nhóm kết nối ở mức thấp.
Đối với JPAContianer, nó không thể sử dụng được nếu bạn cần làm mới vùng chứa hoặc bạn phải xử lý các hạt đậu có quan hệ. Ngoài ra, tôi đã không quản lý để làm cho nó hoạt động với tải hàng loạt, vì vậy mỗi lần đọc mục nhập hoặc mối quan hệ tương đương với một lần chọn đối với DB. Không hỗ trợ tải chậm.
Tất cả những gì bạn cần là mở EM / phiên. Cố gắng sử dụng những người bảo trợ được đề xuất hoặc mở EM / phiên mỗi giao dịch và hợp nhất bean của bạn trước.
Câu hỏi của bạn khá phức tạp và khó trả lời, nhưng tôi hy vọng những liên kết này sẽ giúp bạn tham gia:
Chiến lược ràng buộc Pojo cho chế độ ngủ đông
https://vaadin.com/forum#!/thread/39712
MVP-lite
https://vaadin.com/directory#addon/mvp-lite (gắn bó với mẫu điều khiển sự kiện)