Hibernate中的查询太多,甚至是延迟获取
在与Hibernate合作几年后,问这个问题有点尴尬 我有一个master_表: 有一些@OneToManyfetch=FetchType.LAZY,mappedBy=something 还有一些@ManyToOnefetch=FetchType.LAZY 可能有一些@OneToOne 在child_表中也是这样 我只加载了master_表,它给了我大约500行。然而在后台,大约有6000个查询。我很确定没有迫不及待的问题 问:这正常吗?在不影响延迟加载机制的情况下,仅使用一个查询就可以加载这个表,而延迟加载机制在这里工作得非常好 谢谢答案很简单: -在@OneToMany上使用Fetch=Subselect只给了我一个查询。由于它是惰性的,当需要子对象时,将生成相应的查询Hibernate中的查询太多,甚至是延迟获取,hibernate,lazy-loading,Hibernate,Lazy Loading,在与Hibernate合作几年后,问这个问题有点尴尬 我有一个master_表: 有一些@OneToManyfetch=FetchType.LAZY,mappedBy=something 还有一些@ManyToOnefetch=FetchType.LAZY 可能有一些@OneToOne 在child_表中也是这样 我只加载了master_表,它给了我大约500行。然而在后台,大约有6000个查询。我很确定没有迫不及待的问题 问:这正常吗?在不影响延迟加载机制的情况下,仅使用一个查询就可以加载这个
-使用BatchSize也是一个很好的选择如果看不到实际的配置,很难说。或者您可以使用JOIN fetch modeNo,JOIN fetch mode没有帮助。仍然有1个针对公司的查询,n个针对员工的查询经过多次测试。BatchSize=m在某种程度上是有帮助的,因为查询的数量将是1+n/m。我想从您的问题来看,您正在做什么以及您试图实现什么并不清楚。很高兴你有一个满意的答案。