hibernate _类级别加载策略

一:数据表||实体类

1、数据库表数据

1、Orders表

hibernate _类级别加载策略

2、Customer表

hibernate _类级别加载策略

2、实体类

1、Orders实体类

hibernate _类级别加载策略

2、Customer实例类

hibernate _类级别加载策略

二:load(延迟加载) || get(普通加载)

1、使用get方法进行查询

1、openSession.get()加载时立即查询则会打印SQL语句

hibernate _类级别加载策略

hibernate _类级别加载策略

2、使用load方法加载


1、(默认)是执行时,不发生SQL语句,返回一个对象,使用该对象时才执行SQL查询

2、延迟加载:只是获得对象没有使用不会查询,在使用的时候进行查询

hibernate _类级别加载策略

2-1、延迟加载策略

1、可以通过配置文件中class元素上的lazy进行配置控制

|-lazy:true加载时,不查询使用时候查询(默认)

|-lazy:false 加载时立即查询

2、注意:get方法没有 延迟加载的策略

hibernate _类级别加载策略

hibernate _类级别加载策略

3、懒加载流程

3-1、lazy="true"(默认)

1、查询时,会返回一个代理对象,会在使用属性时,根据关联session查询数据库,加载数据

hibernate _类级别加载策略

3-1、lazy="false"(和get没区别,调用立即加载数据)

1、直接返回一个对象,而不是代理对象

hibernate _类级别加载策略

3-3、注意

1、使用懒加载时,调用属性加载数据必须确保Seeson是开启

hibernate _类级别加载策略

2、Session关闭使用懒加载获取对象会报异常

hibernate _类级别加载策略

hibernate _类级别加载策略

猜你喜欢

转载自blog.csdn.net/weixin_34242509/article/details/86715692