public class TableReactiveIdentifierGenerator extends Object implements ReactiveIdentifierGenerator<Long>
javax.persistence.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.
Modifier and Type | Field and Description |
---|---|
(package private) String | renderedTableName |
(package private) String | segmentColumnName |
(package private) String | valueColumnName |
Constructor and Description |
---|
TableReactiveIdentifierGenerator() |
Modifier and Type | Method and Description |
---|---|
protected String | buildInsertQuery() |
protected String | buildSelectQuery() |
protected String | buildUpdateQuery() |
void | configure(Type type, Properties params, ServiceRegistry serviceRegistry) |
protected String | determineDefaultSegmentValue(Properties params) |
protected int | determineIncrement(Properties params) |
protected int | determineInitialValue(Properties params) |
protected String | determineSegmentColumnName(Properties params, JdbcEnvironment jdbcEnvironment) |
protected String | determineSegmentValue(Properties params) |
protected Boolean | determineStoreLastUsedValue(ServiceRegistry serviceRegistry) |
protected QualifiedName | determineTableName(Properties params, ServiceRegistry serviceRegistry) |
protected String | determineValueColumnNameForTable(Properties params, JdbcEnvironment jdbcEnvironment) |
CompletionStage<Long> | generate(ReactiveConnectionSupplier session, Object entity) Returns a generated identifier, via a CompletionStage . |
protected Object[] | insertParameters(long insertedValue) |
protected Object[] | selectParameters() |
protected Object[] | updateParameters(long currentValue, long updatedValue) |
String renderedTableName
String segmentColumnName
String valueColumnName
public CompletionStage<Long> generate(ReactiveConnectionSupplier session, Object entity)
ReactiveIdentifierGenerator
CompletionStage
.generate
in interface ReactiveIdentifierGenerator<Long>
session
- the reactive sessionpublic void configure(Type type, Properties params, ServiceRegistry serviceRegistry)
protected Boolean determineStoreLastUsedValue(ServiceRegistry serviceRegistry)
protected QualifiedName determineTableName(Properties params, ServiceRegistry serviceRegistry)
protected String determineSegmentColumnName(Properties params, JdbcEnvironment jdbcEnvironment)
protected String determineValueColumnNameForTable(Properties params, JdbcEnvironment jdbcEnvironment)
protected String determineSegmentValue(Properties params)
protected String determineDefaultSegmentValue(Properties params)
protected int determineInitialValue(Properties params)
protected int determineIncrement(Properties params)
protected Object[] updateParameters(long currentValue, long updatedValue)
protected Object[] insertParameters(long insertedValue)
protected Object[] selectParameters()
protected String buildSelectQuery()
protected String buildUpdateQuery()
protected String buildInsertQuery()