Hibernate的get和load的區別

2021-04-12 14:01:36 字數 476 閱讀 9899

hibernate的get和load的區別

load()方法是假定你所讀取的物件是肯定存在的...而get則是嘗試訪問..如果沒有則返回null.而load就會丟擲exception cant load ...

個人認為這兩個方法唯一的區別就是為了實現不同的業務需要...從src上看效能是一樣的

get是直接查詢資料庫,如果查不到就返回null,並不存在如樓上說的隱患吧?

load會首先從記憶體中裝載,如果以前沒有裝載或查詢出來,才開 始查詢資料庫,某些情況下效率會高一點。但如果類是通過**對映的,load()方法會返回乙個物件,這是乙個未初始化的**,並且直到你呼叫該物件的某 方法時才會去訪問資料庫,如果資料庫中並不存在這條資料,而你去使用它的方法必然會丟擲異常,所以你得在使用到這個物件的各處捕獲異常,使用起來相對麻 煩。但這是使用了**的情況,如果沒有使用**,只是簡單的load,那查不到資料就會丟擲異常了。

hibernate的get和load的區別

hibernate的get和load方法的區別

訪問資料庫時機 name com.pojo.customer table cst customer lazy false public class customerdaotest 需求 通過id查詢指定的客戶資訊,有延遲 test public void load hibernate內建的連線池功能...

Hibernate的get和load方法

load和get一共是2個區別 第乙個 延遲載入 load是true而get是false 意 思就是 load採用的是延遲載入的方式 而get不是,hibernate思想是 既然這個方法支援延遲載入 他就認為這個物件一定在資料庫存在,在你 宣告 tfaq tfag2 tfaq sess.load t...

Hibernate的load 和get 區別

最近在用hibernate的時候發現乙個問題 比如我們從資料庫獲得乙個物件時,使用session.get 方法還是session.load 兩種方法在獲得乙個實體物件時是有區別的,在查詢效能上兩者是不同的。一.獲得實體物件的不同 load方法 public student getstudentbys...