hibernate 的急載入與懶載入

2021-10-04 01:29:42 字數 906 閱讀 8323

急載入在產生物件是就會把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的...