Hibernate的get()和load()方法

Hibernate的get和load方法区别

1、get方式会马上发出查询语句,load不会,而是先返回一个代理(继承当前实体类,可理解为空壳),当你真正需要使用它的时候才会去查询,返回相应字段信息

2、load支持lazy(延迟加载、懒加载)

什么叫lazy?

只有真正使用这个对象的时候,在创建,对于hibernate来说,才真正的发出查询语句,主要是为了提高性能

hibernate的lazy是如何实现的?

采用代理对象实现,代理对象主要采用的是CGLIB库生成的,而不是JDK的动态代理,因为JDK的动态代理只能对实现了接口的类生成代理,CGLIB可以对类生成代理,采用的是继承方式

3、get查询不存在的对象返回null,load查询不存在的数据,hibernate会抛出ObjectNotFoundException异常

hibernate的删除方式

1、先加载(get/load),再删除-----建议此法

2、手动构造detached状态的对象,再删除

都是根据ID来删

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容