Hibernate-----3、Hibernate的體繫結構

來源:互聯網
上載者:User

標籤:hibernate   java   orm   體繫結構   



SessionFactory:是單個資料庫映射關係經過編譯後的記憶體鏡像,他是安全執行緒的。是產生Session的工廠,本身需依賴於ConnectionProvider。該對象可在進程或叢集的層級上,為那些事物之間可重用的資料提供可選的二級緩衝

Session:是應用程式與持久儲存層之間互動操作的一個單線程對象。所有的持久化對象必須在Session管理下才可進行持久化操作。其生存期很短。它底層封裝了JDBC串連,他也是Transaction的工廠、Session對象持有一個必選的一級緩衝,顯式執行flush之前,所有持久化操作的資料都緩衝在Session對象中

Transaction:代表一次原子操作,它具有資料庫事務的概念。Hiberante事務是對底層具體的JDBC、JTA以及CORBA事務的抽象。在某些情況下,一個Session之內可能包含多個Transation對象;雖然事務操作可選,但所有持久化操作都應該在交易管理下進行,即使是唯讀操作

持久化對象:系統建立的POJO執行個體,一旦與特定Session關聯,並對應資料表的指定記錄,該就像就處於持久化轉態,這一系列對象都被稱為持久化對象。在程式中對持久化對象執行的修改,都將自動被轉換為持久層的修改。持久化對象完成可以是普通的JavaBean/POJO,唯一特殊的是他們正與一個Session關聯

瞬態對象:new建立的Java執行個體,沒有與Session相關聯(瞬態);瞬態執行個體可能是被應用程式執行個體化後,尚未進行持久化的對象;

脫管對象:曾經持久化過的執行個體,但因為Session的關閉則轉化為託管狀態

串連提供者(ConnectionProvider):產生JDBC串連的工廠,通過抽象將應用程式與地層的DataSource或DriverManager隔離開。該對象僅在應用程式需擴充時使用

事務工廠(TransactionFactory):產生Transaction對象執行個體的工廠。該對象無須應用程式直接存取。它負責對地層具體的事務實現進行封裝、將地層具體的事務抽象成Hibernate事務

   


實際應用中很少直接使用DriverManager來擷取資料庫連接,通常用DataSource來擷取資料庫連接,因此實際應用中ConnectionProvicer通常由DataSource充當。由於SessionFactory底層封裝了ConnectionProvider,因此實際應用中,SessionFactory底層封裝了DataSource

Hibernate-----3、Hibernate的體繫結構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.