org.hibernate.id.enhanced
Interface Optimizer
- OptimizerFactory.HiLoOptimizer, OptimizerFactory.NoopOptimizer, OptimizerFactory.OptimizerSupport, OptimizerFactory.PooledOptimizer
public interface Optimizer
Performs optimization on an optimizable identifier generator. Typically
this optimization takes the form of trying to ensure we do not have to
hit the database on each and every request to get an identifier value.
Optimizers work on constructor injection. They should provide
a constructor with the following arguments
- java.lang.Class - The return type for the generated values
- int - The increment size
applyIncrementSizeToSourceValues
public boolean applyIncrementSizeToSourceValues()
Are increments to be applied to the values stored in the underlying
value source?
- 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.
generate
public Serializable generate(AccessCallback callback)
Generate an identifier value accounting for this specific optimization.
callback
- Callback to access the underlying value source.
- The generated identifier value.
getIncrementSize
public int getIncrementSize()
Retrieves the defined increment size.
getLastSourceValue
public long getLastSourceValue()
A common means to access the last value obtained from the underlying
source. This is intended for testing purposes, since accessing the
unerlying database source directly is much more difficult.
- The last value we obtained from the underlying source;
-1 indicates we have not yet consulted with the source.