我正在使用hibernate 3.2.5。 hibernate配置文件中语句hibernate.jdbc.batch_size
的确切用法/含义是什么?
从文档中,我可以看到我们需要在配置中添加此行以进行批处理,否则默认情况下禁用批处理。除此之外,将上述行分配给一个数字的具体原因是什么?
不,如果我将其分配给30(假设)然后我的批次将能够插入/更新/删除最多30行,我在本地测试了这个东西。那么我们为此分配的数字的用途是什么?
请让我知道这件事。
此致
答案 0 :(得分:3)
只是为了解释一下:比如说,你有一个实体Parent
,它与另一个实体one-to-many
有Child
关系,初始化为lazy
。
通过定义hibernate.jdbc.batch_size = 30
,您的意思是当您尝试从Child
实体获取Parent
个实体时,会以批量大小30加载它们即30 Child
个对象,如果有30个或更多可用的对象可用数量。
e.g。如果Parent has 100 Child
对象延迟加载,现在您正在迭代Child
个对象,它将在后端触发4个查询,以便在30, 30, 30 and 10
的块中加载Child对象。
希望这有帮助!
答案 1 :(得分:2)
JDBC批处理更新允许在一个批处理中向数据库发送多个更新查询。它减少了网络呼叫的数量。您可以将其视为上传包含20个文件的未压缩zip,而不是单独发送20个文件。