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