类 HiLoOptimizer
- java.lang.Object
-
- org.hibernate.id.enhanced.AbstractOptimizer
-
- org.hibernate.id.enhanced.HiLoOptimizer
-
- 所有已实现的接口:
Optimizer
public class HiLoOptimizer extends AbstractOptimizer
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. TheincrementSizeserves this purpose. The naming here is meant more for consistency in that this value serves the same purpose as the increment supplied to thePooledOptimizer. The general algorithms used to determine the bucket are:upperLimit = (databaseValue * incrementSize) + 1lowerLimit = upperLimit - incrementSize
upperLimit = (1 * 20) + 1 = 21lowerLimit = 21 - 20 = 1
upperLimit = (2 * 20) + 1 = 41lowerLimit = 41 - 20 = 21
- 作者:
- Steve Ebersole
-
-
字段概要
-
从类继承的字段 org.hibernate.id.enhanced.AbstractOptimizer
incrementSize, returnClass
-
-
构造器概要
构造器 构造器 说明 HiLoOptimizer(Class returnClass, int incrementSize)Constructs a HiLoOptimizer
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 booleanapplyIncrementSizeToSourceValues()Are increments to be applied to the values stored in the underlying value source?Serializablegenerate(AccessCallback callback)Generate an identifier value accounting for this specific optimization.IntegralDataTypeHoldergetHiValue()Getter for property 'upperLimit'.IntegralDataTypeHoldergetLastSourceValue()A common means to access the last value obtained from the underlying source.IntegralDataTypeHoldergetLastValue()Getter for property 'lastValue'.-
从类继承的方法 org.hibernate.id.enhanced.AbstractOptimizer
getIncrementSize, getReturnClass
-
-
-
-
构造器详细资料
-
HiLoOptimizer
public HiLoOptimizer(Class returnClass, int incrementSize)
Constructs a HiLoOptimizer- 参数:
returnClass- The Java type of the values to be generatedincrementSize- The increment size.
-
-
方法详细资料
-
generate
public Serializable generate(AccessCallback callback)
从接口复制的说明:OptimizerGenerate an identifier value accounting for this specific optimization. All known implementors are synchronized. Consider carefully if a new implementation could drop this requirement.- 参数:
callback- Callback to access the underlying value source.- 返回:
- The generated identifier value.
-
getLastSourceValue
public IntegralDataTypeHolder getLastSourceValue()
从接口复制的说明:OptimizerA 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.- 返回:
- The last value we obtained from the underlying source; null indicates we have not yet consulted with the source.
-
applyIncrementSizeToSourceValues
public boolean applyIncrementSizeToSourceValues()
从接口复制的说明:OptimizerAre 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.
-
getLastValue
public IntegralDataTypeHolder getLastValue()
Getter for property 'lastValue'. Exposure intended for testing purposes.- 返回:
- Value for property 'lastValue'.
-
getHiValue
public IntegralDataTypeHolder getHiValue()
Getter for property 'upperLimit'. Exposure intended for testing purposes.- 返回:
- Value for property 'upperLimit'.
-
-