Class PooledLoThreadLocalOptimizer

java.lang.Object
org.hibernate.id.enhanced.AbstractOptimizer
org.hibernate.id.enhanced.PooledLoThreadLocalOptimizer
All Implemented Interfaces:
Optimizer

public class PooledLoThreadLocalOptimizer extends AbstractOptimizer
Variation of PooledOptimizer which interprets the incoming database value as the lo value, rather than the hi value, as well as using thread local to cache the generation state.
See Also:
  • Constructor Details

    • PooledLoThreadLocalOptimizer

      public PooledLoThreadLocalOptimizer(Class<?> returnClass, int incrementSize)
      Constructs a PooledLoThreadLocalOptimizer.
      Parameters:
      returnClass - The Java type of the values to be generated
      incrementSize - The increment size.
  • Method Details

    • generate

      public 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.
      Parameters:
      callback - Callback to access the underlying value source.
      Returns:
      The generated identifier value.
    • 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.
      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?
      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.