Java 在配置中设置批大小

Java 在配置中设置批大小,java,hibernate,Java,Hibernate,我正在使用hibernate 3.2.5。hibernate配置文件中语句hibernate.jdbc.batch\u size的确切用途/含义是什么 从文档中,我可以看到我们需要在批处理的配置中添加这一行,否则,默认情况下会禁用批处理。除此之外,将上述行指定为数字的具体原因是什么 它是而不是如果我将它指定为30(假设),那么我的批处理最多可以插入/更新/删除30行,我在本地测试了这一点。那么我们为这个分配的号码有什么用呢 请让我知道这件事 关于,仅解释一下:例如,您有一个实体父对象,它与另一个

我正在使用hibernate 3.2.5。hibernate配置文件中语句
hibernate.jdbc.batch\u size
的确切用途/含义是什么

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

它是而不是如果我将它指定为30(假设),那么我的批处理最多可以插入/更新/删除30行,我在本地测试了这一点。那么我们为这个分配的号码有什么用呢

请让我知道这件事


关于,

仅解释一下:例如,您有一个实体
父对象
,它与另一个实体
子对象具有
一对多
关系,初始化为
惰性

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

e、 g.如果
Parent有100个子
对象被延迟加载,那么现在您正在迭代
对象,它将在后端触发4个查询,以加载
30、30、30和10的块中的子对象


希望这有帮助

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

好的,如果不存在任何关系,是否就不会出现这种情况?你说的
lazy
初始化是什么意思?你能解释一下这两个吗?@user182944:刚才有人给了我一个例子。这意味着Hibrate将尽可能优化后端查询,但使用批处理,如我的示例中所述,它将触发4个查询而不是100个。您确定此属性与延迟加载相关,而不是更新相关,如Anand在下面所述吗?我认为这与延迟加载相关:hibernate.default\u batch\u fetch\u size