java筆試題---hibernate中load()與get()的區別


1.如果未能發現符合條件的記錄,get方法返回null,而load方法會拋出一個ObjectNotFoundException。

2.load支持延遲加載,get不支持。

      如:Student student = (Student)session.load(Student.class,1);  //不會發出SQL語句
       student.getName();   //這條語句纔會發出SQL語句
       而使用get方法,Student student = (Student)session.get(Student.class,1);  //會發出SQL語句


3.load方法可返回實體的代理類實例,而get方法永遠直接返回實體類。
4.load方法可以充分利用內部緩存和二級緩存中的現有數據,get方法則僅僅在內部緩存中進行數據查找,如沒有發現對應數據,將越過二級緩存,直接調用SQL完成數據讀取。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章