|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.hibernate.id.enhanced.OptimizerFactory.OptimizerSupport org.hibernate.id.enhanced.OptimizerFactory.HiLoOptimizer
public static class OptimizerFactory.HiLoOptimizer
Optimizer which applies a 'hilo' algorithm in memory to achieve optimization.
A 'hilo' algorithm is simply a means for a single value stored in the database to represent a "bucket" of possible, contiguous values. The database value identifies which particular bucket we are on. This database value must be paired with another value that defines the size of the bucket; the number of possible values available. TheincrementSize
serves this purpose. The
naming here is meant more for consistency in that this value serves the
same purpose as the increment supplied to the OptimizerFactory.PooledOptimizer
.
The general algorithms used to determine the bucket are:upperLimit = (databaseValue * incrementSize) + 1
lowerLimit = upperLimit - incrementSize
upperLimit = (1 * 20) + 1 = 21
lowerLimit = 21 - 20 = 1
upperLimit = (2 * 20) + 1 = 41
lowerLimit = 41 - 20 = 21
Field Summary |
---|
Fields inherited from class org.hibernate.id.enhanced.OptimizerFactory.OptimizerSupport |
---|
incrementSize, returnClass |
Constructor Summary | |
---|---|
OptimizerFactory.HiLoOptimizer(Class returnClass,
int incrementSize)
|
Method Summary | |
---|---|
boolean |
applyIncrementSizeToSourceValues()
Are increments to be applied to the values stored in the underlying value source? |
Serializable |
generate(AccessCallback callback)
Generate an identifier value accounting for this specific optimization. |
IntegralDataTypeHolder |
getHiValue()
Getter for property 'upperLimit'. |
IntegralDataTypeHolder |
getLastSourceValue()
A common means to access the last value obtained from the underlying source. |
IntegralDataTypeHolder |
getLastValue()
Getter for property 'lastValue'. |
Methods inherited from class org.hibernate.id.enhanced.OptimizerFactory.OptimizerSupport |
---|
getIncrementSize, getReturnClass |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public OptimizerFactory.HiLoOptimizer(Class returnClass, int incrementSize)
Method Detail |
---|
public Serializable generate(AccessCallback callback)
Optimizer
callback
- Callback to access the underlying value source.
public IntegralDataTypeHolder getLastSourceValue()
Optimizer
public boolean applyIncrementSizeToSourceValues()
Optimizer
public IntegralDataTypeHolder getLastValue()
public IntegralDataTypeHolder getHiValue()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |