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
public class PooledOptimizer extends AbstractOptimizer implements InitialValueAwareOptimizer
Optimizer which uses a pool of values, storing the next low value of the range in the database. Note that this optimizer works essentially the same as theHiLoOptimizer
except that here the bucket ranges are actually encoded into the database structures. Note if you prefer that the database value be interpreted as the bottom end of our current range, then use thePooledLoOptimizer
strategy- See Also:
PooledLoOptimizer
-
-
Field Summary
-
Fields inherited from class org.hibernate.id.enhanced.AbstractOptimizer
incrementSize, returnClass
-
-
Constructor Summary
Constructors Constructor Description PooledOptimizer(java.lang.Class returnClass, int incrementSize)
Constructs a PooledOptimizer
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
applyIncrementSizeToSourceValues()
Are increments to be applied to the values stored in the underlying value source?java.io.Serializable
generate(AccessCallback callback)
Generate an identifier value accounting for this specific optimization.IntegralDataTypeHolder
getLastSourceValue()
A common means to access the last value obtained from the underlying source.IntegralDataTypeHolder
getLastValue()
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
-
-
-
-
Method Detail
-
generate
public java.io.Serializable generate(AccessCallback callback)
Description copied from interface:Optimizer
Generate an identifier value accounting for this specific optimization. All known implementors are synchronized. Consider carefully if a new implementation could drop this requirement.
-
getLastSourceValue
public IntegralDataTypeHolder 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
public IntegralDataTypeHolder 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.
-
-