簡述hibernate left join fetch的做用

首先要明白延遲加載lazy的做用。fetch

先簡述一下lazy:對象

lazy表示的是該屬性是否懶惰加載,默認值是 true,當值爲 true 的時候你在查詢主對象,不會當即加載該屬性值,反之則當即加載。例如:現有實體User有一個地址屬性,配置爲:<many-to-one name="address" class="com.my.entity.Address" lazy="false"/>,當你在查詢User時不會當即加載它的address屬性,而是在你用到address屬性時它再自動加載,若是你一直沒有用到address,那麼address屬性就一直不會被加載,而當lazy=false時,則是在你查詢User時就馬上加載它的address屬性it

那麼fetch至關於在程序裏設置了lazy=false,若是在lazy=true中去掉了fetch,那麼下面這種語句會報錯class

from SysDict as s left join fetch s.parent where s.isEnabled = true order by s.nature, s.order配置

相關文章
相關標籤/搜索