在配置中设置批量大小

时间:2012-11-05 16:03:45

标签: java hibernate

我正在使用hibernate 3.2.5。 hibernate配置文件中语句hibernate.jdbc.batch_size的确切用法/含义是什么?

从文档中,我可以看到我们需要在配置中添加此行以进行批处理,否则默认情况下禁用批处理。除此之外,将上述行分配给一个数字的具体原因是什么?

,如果我将其分配给30(假设)然后我的批次将能够插入/更新/删除最多30行,我在本地测试了这个东西。那么我们为此分配的数字的用途是什么?

请让我知道这件事。

此致

2 个答案:

答案 0 :(得分:3)

只是为了解释一下:比如说,你有一个实体Parent,它与另一个实体one-to-manyChild关系,初始化为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个文件。