load默认为延迟加载,在用到对象中的其它属性数据时才查询数据库,但是万一数据库中不存在该记录,抛ObjectNotFoundException,即在使用该对象时,数据库中不存在该数据库时抛异常,而不是在创建这个对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理(load时候查询一级缓存,不存在则创建代理)。get()先在以及缓存栈,没有就去入籍缓存找,又没有就去数据库中找,没有就返回null。
hibernate中load()与get()的区别
最新推荐文章于 2022-03-15 14:41:50 发布