В основном все параметры конфигурации используются для создания экземпляра o.h.c.Settings
.Это делается методом o.h.c.SettingsFactory#buildSettings()
, который содержит следующие строки:
Integer statementFetchSize = PropertiesHelper.getInteger(Environment.STATEMENT_FETCH_SIZE, properties);
if (statementFetchSize!=null) log.info("JDBC result set fetch size: " + statementFetchSize);
settings.setJdbcFetchSize(statementFetchSize);
Итак, значение null
разрешено, оно не будет переведено и будет "распространено" как таковое.
Этот параметр затем используется в o.h.j.AbstractBatcher.java#setStatementFetchSize
:
private void setStatementFetchSize(PreparedStatement statement) throws SQLException {
Integer statementFetchSize = factory.getSettings().getJdbcFetchSize();
if ( statementFetchSize!=null ) {
statement.setFetchSize( statementFetchSize.intValue() );
}
}
Этот частный метод вызывается при подготовке PreparedStatement
или CallableStatement
.См. prepareQueryStatement
и prepareCallableQueryStatement
в AbstractBatcher
.
Итак, значение по умолчанию - null
, и в результате Hibernate не вызывает Statement#setFetchSize()
.
.Справочная документация:
3.4.Дополнительные параметры конфигурации
...
hibernate.jdbc.fetch_size
: ненулевое значение определяет размер выборки JDBC (звонки Statement.setFetchSize()
)
что javadoc должен сказать о Statement#setFetchSize()
:
Дает драйверу JDBC подсказку относительно количества строк, которые должны быть извлечены избаза данных, когда требуется больше строк для объектов ResultSet, сгенерированных этим оператором.Если указанное значение равно нулю, то подсказка игнорируется. Значение по умолчанию равно нулю .
Другими словами, при использовании null
fetch_size
драйвер JDBC будет использовать значение по умолчанию, равное нулю .