你能证明Hibernate Lazy-Loading吗?

时间:2011-09-17 14:28:13

标签: java hibernate jpa-2.0

我只是想问一下,如何证明hibernate正在进行延迟加载。 我有这样的代码:

enter image description here

我尝试使用以下代码测试hibernate(jpa)中的延迟加载:

enter image description here

实际上,我不会加载“alamat”属性,因为那是一个TEXT。但是当我尝试调试代码时,我得到了如下输出跟踪:

enter image description here

Hibernate仍然选择alamat列,并且在调试中可靠,我发现Hibernate实际上是加载alamat列:

enter image description here

2 个答案:

答案 0 :(得分:3)

Hibernate手册说明:

  

要启用属性级别的延迟抓取,您的类必须是   检测:将字节码添加到原始类以启用此类   功能,请参考Hibernate参考文档。如果   你的类没有检测,属性级延迟加载是   默默地忽略了。

如何实现这一点在本手册的chapter 20.1.8. Using lazy property fetching中有说明。它需要一个特殊的构建过程。

答案 1 :(得分:1)

您必须启用字节码检测以激活属性的延迟加载。如果您没有启用字节码检测,Hibernate将忽略任何有关延迟加载的属性(see the docs