您的位置:首页 > 业界新闻

Hibernate入门到精通-懒加载

2017-10-22 18:38 399 查看


3.懒加载(延迟加载) lazy

它是Hibernate为提高程序执行效率而提供的一种机制,即只有真正使用该对象的数据时才会创建。Hibernate中主要是通过代理(proxy)机制来实现延迟加载。

Address adr = session.load(Address.class,2L);//直接返回的是代理对象
System.out.println(adr.getId());//没有发送sql到数据库中
System.out.println("---------");
System.out.println(adr.getName());//创建真正的对象实例,发送sql语句到数据库
System.out.println("---------");
System.out.println(adr.getUser());//创建真正的对象实例,发送sql语句到数据库

如何关闭懒加载:

加载单个实体,如果不需要延迟加载,就可以使用session的get()方法。

Address adr = session.get(Address.class,2L);//直接创建真正的对象实例


当session加载某个实体时,不需要对这个实体中的集合属性值延迟加载,而是要立即加载。这是可以在映射文件中这个集合的配置元素(set bag list)添加属性lazy=false;

当session加载某个实体时,不需要对这个实体所单端关联的另一个实体对象延迟加载,就可以在影射文件中针对这个单端关联的配置元素(<one-to-one><many-to-one>)添加lazy=false;

<many-to-one lazy="false" name="user" class="com.qfedu.entity.User" column="user_id"></many-to-one>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息