如果使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,它可以放心的使用代理来延迟加载该对象。在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,将会抛出ObjectNotFoundException的异常。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象是否存在,不存在则创建代理。所以如果你知道该id在数据库中一定有对应记录存在就可以使用load方法来实现延迟加载。
对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查数据库,数据库中没有就返回null。
hibernate中get()与load()的区别
最新推荐文章于 2025-12-29 09:40:14 发布
本文探讨了Hibernate框架中load与get方法的区别。load方法假定数据库中一定存在对应记录,采用延迟加载策略;而get方法则会确认记录的存在性,若不存在则返回null。
434

被折叠的 条评论
为什么被折叠?



