Hibernate 笔记5 load和get方法的区别
load和get方法的区别
1)当数据库不存在对应ID数据时.
调用load()方法将会抛出ObjectNotFoundException异常。
调用get()方法将返回null。
2)延时加载(lazy)
load的方法默认要加载的对象是存在数据库中的,返回的是一个代理对象而不是一个真正的类实例,当用到具体与数据库有关的数据时候才查询数据库。
get方法,没有lazy属性,直接查询数据库,返回类的实例。
3)缓存
get方法首先查询session缓存,没有的话查询二级缓存,最后查询数据库;
load方法创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库。