前言:關聯關係有兩種加載類型,延遲加載,立即加載
1.延遲加載:
fetch=FetchType.LAZY 延遲加載 (當從數據庫中獲取一條數據時,不會立刻加載與該數據關聯的數據,而是在我們第一次操作到關聯數據的對象時,纔會去數據庫中load數據。)*注意:要使用延遲加載特性,EntityManage對象必須沒有被關閉。
2.立即加載:
fetch=FetchType.EAGER 立即加載 (當獲取一個對象時,會立刻獲得與該對象關聯的其他對象。)
這是關聯關係屬性加載的兩種方式。
現在我們看一下,一對多,一對一關聯關係的默認加載類型:
@OneTOMany 在一對多關係中,當我們沒有設置加載類型時,其默認值爲LAZY也就是延遲加載。其實這很好理解,如果我們加載一的時候,默認加載了多時,這顯然不合理,我們舉一個例子:如果與一相關的有幾十萬個條數據,而這些數據並不被立即使用,那麼默認加載出來,是十分浪費數據庫I/O的。
@OneToOne在一對一關係中,默認值是EAGER,也就是立即加載。
至於多對多關係,我稍後會補充出來。。。。。。