Hibernate和N+1查询

fhity93d  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(137)

我对n+1的概念感到困惑,我知道它只是用于检索数据(选择子句)。但如果我有很多实体,那么我会循环它们,并为每个元素调用更新语句。它被称为N+1吗?
此外,Hibernate saveOrUpdateAll(..)将循环遍历所有元素并生成查询,对于大型输入,最佳做法是什么?
谢谢你的帮忙
我尝试在互联网上研究这个概念,但我仍然不清楚如何更新或删除查询

yftpprvb

yftpprvb1#

N+1现象通常对应于这样一个事实,即Hibernate可能对属于先前由第一次查询检索到的N个元素的列表中的每个元素执行一次查询。N+1查询现象可能会产生较差的性能,并且在大多数情况下必须使用各种暗示连接的策略来缓解。
如果您有多个要更新的对象,并且更改之间没有公用逻辑,则无法避免为每个对象触发一个更新查询。如果存在公用逻辑,例如,为所有对象的一个属性设置相同的值,则可以进行批更新,即,执行一个查询以一次更新所有对象。

相关问题