菜鸟在Hibernate的路上前行–验证延迟加载

验证延迟加载

1.1 问题

设计案例,验证session.load()方法和query.iterate()方法在查询时是采用延迟加载机制的。

项目结构预览图:

 

1.2 方案

1. 验证session.load()的延迟加载,可以先查询某条EMP数据,然后输出一个分割线,在分割线的后面再使用这个对象,输出它的一
些属性值。在运行时,如果查询EMP的SQL输出在分割线的后面,则验证了该方法是采用延迟加载机制的。
2. 验证query.iterate()的延迟加载,可以先查询出全部的EMP数据,然后输出一个分割线,在分割线的后面再遍历查询结果并输出每
个对象的一些属性值。在运行时,如果查询EMP的SQL输出在分割线的后面,则验证了该方法是采用延迟加载机制的。

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:创建验证延迟加载的测试类

在com.souvc.test包下,创建一个测试类TestLazy,并在这个类中写2个测试方法,分别验证session.load()和query.iterate()方法是采用延迟加载机制的,代码如下:

 

步骤二:测试

分别执行上面的2个测试方法,根据控制台输出的结果,判断session.load()和query.iterate()方法是否采用延迟加载机制。

test1()方法执行后,控制台输出结果如下图,可以看出查询SQL是输出在分割线后面的,也就是在使用emp对象时才触发了数据库的访问,验证了延迟加载的存在。

 

test2()方法执行后,控制台输出结果如下图,可以看出查询EMP表全部内容的SQL输出在分割线的后面,也就是在使用emp对象时才触发的数据库访问,验证了延迟加载的存在。

 

 

 

 

 






如果您认为本教程质量不错,读后觉得收获很大,预期工资能蹭蹭蹭的往上涨,那么不妨小额赞助我一下,让我有动力继续写出高质量的教程。

发布者

souvc

souvc

搜你所想,投你所好。

发表评论