Hibernate架构概述
下圖提供了Hibernate體系結構的高級視圖:
最小的架構
“最小”架構使應用程序管理其自己的JDBC連接,并將這些連接提供給Hibernate; 此外,應用程序自行管理交易。 這種方法使用了最少的Hibernate API子集。
綜合架構
Hibernate Basic API
這里是有關上圖中描述的一些API對象的快速討論。
SessionFactory(org.hibernate.SessionFactory)
單個數據庫的線程安全,不變的已編譯映射緩存。 org.hibernate.Session實例的工廠。 org.hibernate.connection.ConnectionProvider的客戶端。 (可選)維護數據的第二級緩存,該數據可在流程或集群級別的事務之間重用。
會話(org.hibernate.Session)
單線程,短暫的對象,表示應用程序與持久性存儲之間的對話。 包裝JDBC java.sql.Connection。 org.hibernate.Transaction的工廠。 維護持久性應用程序的持久性對象和集合的一級緩存; 在導航對象圖或按標識符查找對象時使用此緩存。
持久對象和集合
包含持久狀態和業務功能的短壽命單線程對象。 這些可以是普通的JavaBeans / POJO。 它們僅與一個org.hibernate.Session相關聯。 一旦org.hibernate.Session關閉,它們將被分離并可以在任何應用程序層中自由使用(例如,直接作為與表示之間的數據傳輸對象)。
瞬時和分離的對象和集合
當前未與org.hibernate.Session關聯的持久化類的實例。 它們可能已被應用程序實例化但尚未持久化,或者它們可能已被封閉的org.hibernate.Session實例化。
交易(org.hibernate.Transaction)
(可選)應用程序用于指定原子工作單元的單線程短期對象。 它從底層的JDBC,JTA或CORBA事務中抽象應用程序。 在某些情況下,一個org.hibernate.Session可能跨越多個org.hibernate.Transactions。 但是,使用基礎API或org.hibernate.Transaction進行事務劃分永遠不是可選的。
ConnectionProvider(org.hibernate.connection.ConnectionProvider)
(可選)JDBC連接的工廠和池。 它從基礎javax.sql.DataSource或java.sql.DriverManager中抽象應用程序。 它沒有公開給應用程序,但是可以由開發人員擴展和/或實現。
TransactionFactory(org.hibernate.TransactionFactory)
(可選)org.hibernate.Transaction實例的工廠。 它沒有公開給應用程序,但是可以由開發人員擴展和/或實現。
擴展接口
Hibernate提供了一系列可選的擴展接口,您可以實現這些接口來自定義持久層的行為。 有關詳細信息,請參見API文檔。
翻譯自: https://www.javacodegeeks.com/2017/06/hibernate-architecture-overview.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Hibernate架构概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 扩展 junit 框架_JUnit 5扩
- 下一篇: 实现wps文档页面横纵向混排(在WPS文