Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate.jdbc.fetch_size和批处理获取策略@BatchSize之间的差异_Java_Hibernate_Orm_Configuration_Batch Fetching - Fatal编程技术网

Java hibernate.jdbc.fetch_size和批处理获取策略@BatchSize之间的差异

Java hibernate.jdbc.fetch_size和批处理获取策略@BatchSize之间的差异,java,hibernate,orm,configuration,batch-fetching,Java,Hibernate,Orm,Configuration,Batch Fetching,对于Hibernate中的N+1查询问题,我在集合和类级别添加了@BatchSize(size=20)。而且它工作得非常好,每次可以获取20条记录。 现在我发现有一个hibernate.jdbc.fetch_size配置选项,我认为它与@BatchSize注释相同。 但是,当我在项目中配置它时,它对N+1查询问题没有影响 我的hibernate.jdbc.fetch\u size错了吗? 什么是hibernate.jdbc.fetch\u size hibernate.jdbc.fetch_si

对于Hibernate中的N+1查询问题,我在集合和类级别添加了
@BatchSize(size=20)
。而且它工作得非常好,每次可以获取20条记录。 现在我发现有一个
hibernate.jdbc.fetch_size
配置选项,我认为它与
@BatchSize
注释相同。 但是,当我在项目中配置它时,它对N+1查询问题没有影响

我的
hibernate.jdbc.fetch\u size
错了吗?
什么是hibernate.jdbc.fetch\u size

hibernate.jdbc.fetch_size是一个

上有多行结果时获取的行数 选择语句

Hibernate使用此配置根据JDBC文档设置和:

给JDBC驱动程序一个提示,告诉它应该添加的行数 当ResultSet需要更多行时从数据库中获取 由该语句生成的对象。如果指定的值为零, 然后忽略提示。默认值为零

因此,此设置只是一个提示,它允许JDBC驱动程序批量检索所选行,以最小化数据库网络往返次数


@BatchSize
是一种优化,它控制生成的SELECT语句的数量。
hibernate.jdbc.fetch\u size
是一个,它确定:

上有多行结果时获取的行数 选择语句

Hibernate使用此配置根据JDBC文档设置和:

给JDBC驱动程序一个提示,告诉它应该添加的行数 当ResultSet需要更多行时,从数据库中获取 由该语句生成的对象。如果指定的值为零, 然后忽略提示。默认值为零

因此,此设置只是一个提示,它允许JDBC驱动程序批量检索所选行,以最小化数据库网络往返次数

@BatchSize
是一种优化,它控制生成的SELECT语句的数量