Package org.hibernate.id.enhanced
Class PooledOptimizer
java.lang.Object
org.hibernate.id.enhanced.AbstractOptimizer
org.hibernate.id.enhanced.PooledOptimizer
- All Implemented Interfaces:
InitialValueAwareOptimizer
,Optimizer
Optimizer which uses a pool of values, storing the next low value of the range
in the database.
This optimizer works essentially the same as the HiLoOptimizer
, except
that here the bucket ranges are actually encoded into the database structures.
If you prefer that the database value be interpreted as the bottom end of our
current range, then use the PooledLoOptimizer
strategy.
- See Also:
-
Field Summary
Fields inherited from class org.hibernate.id.enhanced.AbstractOptimizer
incrementSize, returnClass
-
Constructor Summary
ConstructorsConstructorDescriptionPooledOptimizer
(Class<?> returnClass, int incrementSize) Constructs aPooledOptimizer
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Are increments to be applied to the values stored in the underlying value source?generate
(AccessCallback callback) Generate an identifier value accounting for this specific optimization.A common means to access the last value obtained from the underlying source.Getter for property 'lastValue'.void
injectInitialValue
(long initialValue) Reports the user specified initial value to the optimizer.Methods inherited from class org.hibernate.id.enhanced.AbstractOptimizer
getIncrementSize, getReturnClass
-
Constructor Details
-
PooledOptimizer
Constructs aPooledOptimizer
- Parameters:
returnClass
- The Java type of the values to be generatedincrementSize
- The increment size.
-
-
Method Details
-
generate
Description copied from interface:Optimizer
Generate an identifier value accounting for this specific optimization. -
getLastSourceValue
Description copied from interface:Optimizer
A common means to access the last value obtained from the underlying source. This is intended for testing purposes, since accessing the underlying database source directly is much more difficult.- Specified by:
getLastSourceValue
in interfaceOptimizer
- Returns:
- The last value we obtained from the underlying source; null indicates we have not yet consulted with the source.
-
applyIncrementSizeToSourceValues
public boolean applyIncrementSizeToSourceValues()Description copied from interface:Optimizer
Are increments to be applied to the values stored in the underlying value source?- Specified by:
applyIncrementSizeToSourceValues
in interfaceOptimizer
- Returns:
- True if the values in the source are to be incremented according to the defined increment size; false otherwise, in which case the increment is totally an in memory construct.
-
getLastValue
Getter for property 'lastValue'.Exposure intended for testing purposes.
- Returns:
- Value for property 'lastValue'.
-
injectInitialValue
public void injectInitialValue(long initialValue) Description copied from interface:InitialValueAwareOptimizer
Reports the user specified initial value to the optimizer.-1
is used to indicate that the user did not specify.- Specified by:
injectInitialValue
in interfaceInitialValueAwareOptimizer
- Parameters:
initialValue
- The initial value specified by the user, or-1
to indicate that the user did not specify an initial value.
-