public class TableReactiveIdentifierGenerator extends BlockingIdentifierGenerator implements org.hibernate.id.Configurable
TableGenerator
.
Persistence is managed via a table which may hold multiple
rows distinguished by a "segment" column value.
This implementation supports block allocation, but does not guarantee that generated identifiers are sequential.
Constructor and Description |
---|
TableReactiveIdentifierGenerator() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.String |
buildInsertQuery() |
protected java.lang.String |
buildSelectQuery() |
protected java.lang.String |
buildUpdateQuery() |
void |
configure(org.hibernate.type.Type type,
java.util.Properties params,
org.hibernate.service.ServiceRegistry serviceRegistry) |
protected java.lang.String |
determineDefaultSegmentValue(java.util.Properties params) |
protected int |
determineIncrement(java.util.Properties params) |
protected int |
determineInitialValue(java.util.Properties params) |
protected java.lang.String |
determineSegmentColumnName(java.util.Properties params,
org.hibernate.engine.jdbc.env.spi.JdbcEnvironment jdbcEnvironment) |
protected java.lang.String |
determineSegmentValue(java.util.Properties params) |
protected java.lang.Boolean |
determineStoreLastUsedValue(org.hibernate.service.ServiceRegistry serviceRegistry) |
protected org.hibernate.boot.model.relational.QualifiedName |
determineTableName(java.util.Properties params,
org.hibernate.service.ServiceRegistry serviceRegistry) |
protected java.lang.String |
determineValueColumnNameForTable(java.util.Properties params,
org.hibernate.engine.jdbc.env.spi.JdbcEnvironment jdbcEnvironment) |
protected int |
getBlockSize()
The block size (the number of "lo" values for each "hi" value)
|
protected java.lang.Object[] |
insertParameters(long insertedValue) |
protected java.util.concurrent.CompletionStage<java.lang.Long> |
nextHiValue(ReactiveConnectionSupplier session)
Allocate a new block, by obtaining the next "hi" value from the database
|
protected java.lang.Object[] |
selectParameters() |
protected java.lang.Object[] |
updateParameters(long currentValue,
long updatedValue) |
generate, next, next
protected int getBlockSize()
BlockingIdentifierGenerator
getBlockSize
in class BlockingIdentifierGenerator
protected java.util.concurrent.CompletionStage<java.lang.Long> nextHiValue(ReactiveConnectionSupplier session)
BlockingIdentifierGenerator
nextHiValue
in class BlockingIdentifierGenerator
public void configure(org.hibernate.type.Type type, java.util.Properties params, org.hibernate.service.ServiceRegistry serviceRegistry)
configure
in interface org.hibernate.id.Configurable
protected java.lang.Boolean determineStoreLastUsedValue(org.hibernate.service.ServiceRegistry serviceRegistry)
protected org.hibernate.boot.model.relational.QualifiedName determineTableName(java.util.Properties params, org.hibernate.service.ServiceRegistry serviceRegistry)
protected java.lang.String determineSegmentColumnName(java.util.Properties params, org.hibernate.engine.jdbc.env.spi.JdbcEnvironment jdbcEnvironment)
protected java.lang.String determineValueColumnNameForTable(java.util.Properties params, org.hibernate.engine.jdbc.env.spi.JdbcEnvironment jdbcEnvironment)
protected java.lang.String determineSegmentValue(java.util.Properties params)
protected java.lang.String determineDefaultSegmentValue(java.util.Properties params)
protected int determineInitialValue(java.util.Properties params)
protected int determineIncrement(java.util.Properties params)
protected java.lang.Object[] updateParameters(long currentValue, long updatedValue)
protected java.lang.Object[] insertParameters(long insertedValue)
protected java.lang.Object[] selectParameters()
protected java.lang.String buildSelectQuery()
protected java.lang.String buildUpdateQuery()
protected java.lang.String buildInsertQuery()