Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate中的查询太多,甚至是延迟获取_Hibernate_Lazy Loading - Fatal编程技术网

Hibernate中的查询太多,甚至是延迟获取

Hibernate中的查询太多,甚至是延迟获取,hibernate,lazy-loading,Hibernate,Lazy Loading,在与Hibernate合作几年后,问这个问题有点尴尬 我有一个master_表: 有一些@OneToManyfetch=FetchType.LAZY,mappedBy=something 还有一些@ManyToOnefetch=FetchType.LAZY 可能有一些@OneToOne 在child_表中也是这样 我只加载了master_表,它给了我大约500行。然而在后台,大约有6000个查询。我很确定没有迫不及待的问题 问:这正常吗?在不影响延迟加载机制的情况下,仅使用一个查询就可以加载这个

在与Hibernate合作几年后,问这个问题有点尴尬

我有一个master_表:

有一些@OneToManyfetch=FetchType.LAZY,mappedBy=something 还有一些@ManyToOnefetch=FetchType.LAZY 可能有一些@OneToOne 在child_表中也是这样 我只加载了master_表,它给了我大约500行。然而在后台,大约有6000个查询。我很确定没有迫不及待的问题

问:这正常吗?在不影响延迟加载机制的情况下,仅使用一个查询就可以加载这个表,而延迟加载机制在这里工作得非常好

谢谢

答案很简单: -在@OneToMany上使用Fetch=Subselect只给了我一个查询。由于它是惰性的,当需要子对象时,将生成相应的查询
-使用BatchSize也是一个很好的选择

如果看不到实际的配置,很难说。或者您可以使用JOIN fetch modeNo,JOIN fetch mode没有帮助。仍然有1个针对公司的查询,n个针对员工的查询经过多次测试。BatchSize=m在某种程度上是有帮助的,因为查询的数量将是1+n/m。我想从您的问题来看,您正在做什么以及您试图实现什么并不清楚。很高兴你有一个满意的答案。