我只是想问一下,如何证明hibernate正在进行延迟加载。 我有这样的代码:
我尝试使用以下代码测试hibernate(jpa)中的延迟加载:
实际上,我不会加载“alamat”属性,因为那是一个TEXT。但是当我尝试调试代码时,我得到了如下输出跟踪:
Hibernate仍然选择alamat列,并且在调试中可靠,我发现Hibernate实际上是加载alamat列:
答案 0 :(得分:3)
Hibernate手册说明:
要启用属性级别的延迟抓取,您的类必须是 检测:将字节码添加到原始类以启用此类 功能,请参考Hibernate参考文档。如果 你的类没有检测,属性级延迟加载是 默默地忽略了。
如何实现这一点在本手册的chapter 20.1.8. Using lazy property fetching中有说明。它需要一个特殊的构建过程。
答案 1 :(得分:1)
您必须启用字节码检测以激活属性的延迟加载。如果您没有启用字节码检测,Hibernate将忽略任何有关延迟加载的属性(see the docs)