儘管我需要這個答案才能更好地理解如何在Wildfly 8.1中集成Vaadin 7和JPAContainer插件,但這是一個適用於Hibernate的普遍問題, Eclipse鏈接JPA實現。EclipseLink和Hibernate之間長時間運行會話(Vaadin 7和JPAContainer)的區別
JPACaontainer Vaadin Addon建議爲整個servlet會話建立一個EntityManager,這個IMO並不是很好的設計,因爲AFAIK(並且請糾正我)縮放它總是會更好地使用無狀態的EntityManager-Per-Request模式
JPAContaner附加組件指出:
- Hibernate無法保持實體管理長期沒有問題。
- Hibernate的一個問題是它是爲短期會話而設計的,但實體管理器的生命週期通常大致是用戶會話(讀取,servlet會話)的生命週期。問題是,如果在會話或實體管理器中發生錯誤,管理器將變得不可用。這會對使用EclipseLink的長期會話產生很大的問題。
Hibernate和EclipseLink在執行級別上的區別是什麼?或者,這兩個陳述首先是有效的嗎?
EntityManager API用於訪問特定工作單元中的數據庫。 (來源:http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html_single/#d0e61)Em被設計爲短命。在相關的JSR – Gab