Package org.hibernate.loader.ast.spi
Interface MultiKeyLoadSizingStrategy
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Strategy for determining an optimal size for loading by multiple keys. The
optimal size is defined as the most appropriate number of key values to load
in any single SQL query.
- Author:
- Steve Ebersole
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionintdetermineOptimalBatchLoadSize(int numberOfKeyColumns, int numberOfKeys, boolean inClauseParameterPaddingEnabled) Determine the optimal batch size (number of key values) to load at a time.
-
Method Details
-
determineOptimalBatchLoadSize
int determineOptimalBatchLoadSize(int numberOfKeyColumns, int numberOfKeys, boolean inClauseParameterPaddingEnabled) Determine the optimal batch size (number of key values) to load at a time. The return can be less than the totalnumberOfKeysto be loaded indicating that the load should be split across multiple SQL queries. E.g. if we are loading 7 keys and the strategy says the optimal size is 5, we will perform 2 queries.- Parameters:
numberOfKeyColumns- The number of columns to which the key is mappednumberOfKeys- The total number of keys we need to loadinClauseParameterPaddingEnabled- SeeQuerySettings.IN_CLAUSE_PARAMETER_PADDING- Returns:
- The number of keys to load at once. The total number of JDBC parameters needed for that load is
defined by
numberOfKeys*numberOfKeyColumns. The strategy should take care to ensure thatnumberOfKeys*numberOfKeyColumnsdoes not exceed any database/driver limits on the number of parameters allowed in a PreparedStatement.
-