如何捕获hibernate的延迟加载?

时间:2014-11-05 10:04:18

标签: java hibernate

我想优化一个加载了很多对象的页面,其中许多对象使用hibernate的延迟加载作为其属性。但是很难手动找到所有这些内容,因为当我看到说someItem.getSmth()时,我不知道它实际上是懒得加载(它不是我的代码)我无论如何都可以跳过这些负载,因此我需要一些自动的方法来找到它。我试图打开hibernate的SQL日志记录,但它无法读取它,因为它每页加载大约50兆的日志,并且它不会告诉我调用查询的位置。是否有可能知道哪些对象是延迟加载的?从哪里开始?

1 个答案:

答案 0 :(得分:1)

  

是否有可能知道哪些对象是延迟加载的以及从何处加载?

您可以解析实体bean的注释OneToOneOneToManyManyToOneManyToMany,如果找到,请检查属性fetch是否可以值为FetchType.LAZY

这可以让你知道哪些对象是延迟加载的,哪些是哪个类而不是调用的方法。