Hibernate中的加載機制

Hibernate中有兩種加載機制:數據庫

1:即時加載機制:在使用get方式獲取數據時,hibernate會先檢查緩存中是否有咱們須要的數據,若是沒有當即執行hql語句在數據庫中進行加載數據。緩存

2:懶加載機制:在咱們使用load方式獲取數據時,hibernate不會當即執行hql語句查詢數據,而是在咱們使用數據的時候執行hql語句子啊數據庫中加載數據。懶加載使用的是一個代理對象。hibernate

默認狀況下,類(class)的懶加載是true,這時load使用懶加載,而get使用即時加載。插件

在一對多映射的狀況下,set集合上的懶加載也是true,這時使用get或者load方法都是使用懶加載方式。代理

緣由:get和load只是對於類加載。而set或者list對於get和load來講使用統一的加載方式。對象

在一對多的時候,咱們只想知道多端的數量的時候,即set的大小的咱們能夠設置lazy爲extra,這種方式在加載的時候更加智能,不會所有查詢多端數據,只是查詢了咱們須要的內容。若是想要property裏面的屬性要支持懶加載咱們須要導入第三方的插件。get

相關文章
相關標籤/搜索