2

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

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

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

请让我知道这件事。

问候,

4

2 回答 2

3

只是为了解释一下:例如,你有一个实体Parent,它one-to-many与另一个实体有关系Child,初始化为lazy

通过定义hibernate.jdbc.batch_size = 30,您的意思是当您尝试ChildParent实体获取实体时,它将一次以 30 个30 Child对象的批量大小加载它们,如果可用的对象数量为 30 或更多。

例如,如果Parent has 100 Child对象延迟加载,现在您正在迭代Child对象,它将在后端触发 4 个查询以加载30, 30, 30 and 10.

希望这有帮助!

于 2012-11-05T16:12:35.617 回答
2

JDBC 批量更新允许在一个批次中向数据库发送多个更新查询。它减少了网络调用的数量。您可以将其视为上传包含 20 个文件的未压缩 zip,而不是单独发送 20 个文件。

于 2012-11-05T18:51:02.253 回答