急載入在產生物件是就會把session資料放到快取中。
懶載入是在使用該物件是才會見session資料放到快取中。
急載入@test
public void get()
執行結果
hibernate: select roleentity0_.roleid as roleid1_0_0_, roleentity0_.rolename as rolename2_0_0_ from sys_role roleentity0_ where roleentity0_.roleid=?
session關閉之後管理者1
因為才產生物件時就將資料放在快取中了,所以關閉session還能獲得資料。
// 懶載入
@test
public void load()
執行結果
org.hibernate.lazyinitializationexception: could not initialize proxy - no session
因為在產生物件時不會將session資料放到快取中,所在關閉session後就報出了找不到session。
// 懶載入
@test
public void load()
執行結果是
hibernate: select roleentity0_.roleid as roleid1_0_0_, roleentity0_.rolename as rolename2_0_0_ from sys_role roleentity0_ where roleentity0_.roleid=?
session關閉前管理者2
session關閉後管理者2
因為在關閉session前有使用該物件屬性,就會把資料也放到放到快取中,在關閉session後還可以從快取中獲得session資料。
hibernate的懶載入
所以想讓乙個物件為非延時載入有兩種方法 第一種就是讓該物件訪問它的乙個屬性 第二種呼叫hinbernate.initialize 物件名 懶載入時候應注意的問題 1 懶載入的物件不能是final的,因為懶載入時hinbernate會自動生成乙個繼承自源物件的 物件,如果源物件是final的就不能被繼...
Hibernate懶載入策略
hibernate懶載入策略 概念 lazy的概念就是只有在真正使用物件時,才會去建立。對hibernate而言,就是真正載入時才發出載入sql語句。延遲載入機制是為了避免一些無謂的效能開銷而提出來的。重點牢記 1.load支援延遲載入,get不支援延遲載入。2.lazy的生命週期與session相...
hibernate懶載入原理
懶載入的意思是查詢的時候不會立刻訪問資料庫,而返回的是 物件,當真正去使用物件欄位的時候才會訪問資料庫。load object,serializable 前提實體類不能是final的。根據id查詢 查詢返回的是 物件,不會立刻訪問資料庫,是懶載入的。當真正去使用物件的時候才會訪問資料庫。用load的...