關聯關係中的兩種加載類型詳解

前言:關聯關係有兩種加載類型,延遲加載立即加載         

1.延遲加載:

        fetch=FetchType.LAZY 延遲加載 (當從數據庫中獲取一條數據時,不會立刻加載與該數據關聯的數據,而是在我們第一次操作到關聯數據的對象時,纔會去數據庫中load數據。)
            *注意:要使用延遲加載特性,EntityManage對象必須沒有被關閉。


2.立即加載:

       fetch=FetchType.EAGER 立即加載 (當獲取一個對象時,會立刻獲得與該對象關聯的其他對象。)


這是關聯關係屬性加載的兩種方式。

現在我們看一下,一對多,一對一關聯關係的默認加載類型:

@OneTOMany 在一對多關係中,當我們沒有設置加載類型時,其默認值爲LAZY也就是延遲加載。其實這很好理解,如果我們加載的時候,默認加載了時,這顯然不合理,我們舉一個例子:如果與一相關的有幾十萬個條數據,而這些數據並不被立即使用,那麼默認加載出來,是十分浪費數據庫I/O的。

@OneToOne在一對一關係中,默認值是EAGER,也就是立即加載。


至於多對多關係,我稍後會補充出來。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章