我正在使用Hibernate將對象映射到實體,並且我已經開始使用實體管理器。這可能是一個愚蠢的問題,但究竟是使用實體管理器的原因是什麼?以前我會使用HibernateSessionFactory來獲取會話,然後使用該會話來拉取/推送數據。爲什麼使用實體管理器?
1
A
回答
4
因爲EntityManager
是標準的一部分 - JPA。從理論上講,如果需要,可以切換實現(Hibernate,EclipseLink,OpenJPA)。除了所謂的可移植性之外,兩者之間沒有如此大的差異。
Hibernate實現了JPA標準。實際上,EntityManager
有一個代表,基於具體的實現。對於Hibernate,代表是Session
。如果您致電getDelegate()
,它將返回當前的Session
。
我一直在使用hibernate和JPA(EntityManager),並且很少有需要獲得會話。
1
EntityManager是JPA的概念。 你根本不需要在Hibernate中使用JPA(事實上,如果它是JPA1,我會建議你不要)。
1
您在使用JPA API時使用EntityManager。休眠實現EntityManager
內部調用HibernateSessionFactory
併爲您管理Hibernate會話。
JPA中的EntityManagers與Hibernate會話的用途基本相同。
相關問題
- 1. JPA實體管理器爲什麼要使用?
- 2. 爲什麼實體管理器需要清除()? - Spring3 @Transactional,JPA2/Hibernate3
- 3. 使用實體管理器的Nullpointerexception
- 4. 實體管理器不使用JavaFX
- 5. 爲什麼Doctrine堅持持續引用被管理實體?
- 6. 如何使用實體管理器管理反序列化的實體?
- 7. 實體管理器指定實體
- 8. 實體使用實體管理器,這個設計有多好?
- 9. 通過em.clear()重用實體管理器或創建新的實體管理器?
- 10. symfony和實體管理器
- 11. 實體管理器超時
- 12. 應用程序vs容器管理實體管理器
- 13. 撤消管理器爲零---爲什麼?
- 14. 爲什麼實體管理器在容器管理中不是線程安全的?
- 15. 爲什麼刷新實體管理器時不更新數據庫?
- 16. CommandLine nashorn腳本(jjs)無法創建實體管理器。爲什麼?
- 17. JPA實體管理器資源處理
- 18. Solr,管理實體
- 19. 我爲什麼要使用谷歌標籤管理器?
- 20. 我應該使用什麼窗口管理器作爲示例?
- 21. 實體經理管理
- 22. 重用Doctrine實體管理器使用的數據庫連接
- 23. 問題從不同的包實體使用不同的實體管理器
- 24. 爲什麼要在實體中使用私人設置器
- 25. 奇怪的實體管理器錯誤
- 26. 如何沖洗實體管理器
- 27. Symfony2實體管理器文件
- 28. FOSUserBundle的多實體管理器
- 29. 實體管理器沒有辦法getCriteriaBuilder()
- 30. Spring中的兩個實體管理器