Class SequenceTable
- java.lang.Object
-
- org.datanucleus.store.rdbms.table.AbstractTable
-
- org.datanucleus.store.rdbms.table.TableImpl
-
- org.datanucleus.store.rdbms.valuegenerator.SequenceTable
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringfetchStmtprivate java.lang.StringincrementByStmtprivate java.lang.StringinsertStmtprivate java.lang.StringnextValColumnNamethe next value column nameprivate JavaTypeMappingnextValMappingMapping for the next value columnprivate java.lang.StringsequenceNameColumnNamethe sequence column nameprivate JavaTypeMappingsequenceNameMappingMapping for the sequence name column.-
Fields inherited from class org.datanucleus.store.rdbms.table.AbstractTable
columns, columnsByIdentifier, dba, existsInDatastore, identifier, state, storeMgr, TABLE_STATE_INITIALIZED, TABLE_STATE_INITIALIZED_MODIFIED, TABLE_STATE_NEW, TABLE_STATE_PK_INITIALIZED, TABLE_STATE_VALIDATED
-
-
Constructor Summary
Constructors Constructor Description SequenceTable(DatastoreIdentifier identifier, RDBMSStoreManager storeMgr, java.lang.String seqNameColName, java.lang.String nextValColName)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddSequence(java.lang.String sequenceName, java.lang.Long nextVal, org.datanucleus.store.connection.ManagedConnection conn)Method to insert a row in the SequenceTableJavaTypeMappinggetIdMapping()Accessor for a mapping for the ID (persistable) for this table.JavaTypeMappinggetMemberMapping(org.datanucleus.metadata.AbstractMemberMetaData mmd)Accessor the for the mapping for a field stored in this tablejava.lang.LonggetNextVal(java.lang.String sequenceName, org.datanucleus.store.connection.ManagedConnection conn, int incrementBy, DatastoreIdentifier tableIdentifier, java.lang.String columnName, int initialValue)Accessor for the nextval of a sequenceprivate voidincrementSequence(java.lang.String sequenceName, long incrementBy, org.datanucleus.store.connection.ManagedConnection conn)Method to increment a sequencevoidinitialize(org.datanucleus.ClassLoaderResolver clr)Method to initialise the table.-
Methods inherited from class org.datanucleus.store.rdbms.table.TableImpl
createConstraints, dropConstraints, getExpectedCandidateKeys, getExpectedForeignKeys, getExpectedIndices, getPrimaryKey, getSQLAddCandidateKeyStatements, getSQLAddFKStatements, getSQLCreateIndexStatements, getSQLCreateStatements, getSQLDropStatements, initializeColumnInfoForPrimaryKeyColumns, initializeColumnInfoFromDatastore, logMapping, validate, validateColumns, validateConstraints, validatePrimaryKey
-
Methods inherited from class org.datanucleus.store.rdbms.table.AbstractTable
addColumn, addColumnInternal, allowDDLOutput, assertIsInitialized, assertIsInitializedModified, assertIsPKInitialized, assertIsPKUninitialized, assertIsUninitialized, assertIsValidated, create, drop, equals, executeDdlStatement, executeDdlStatementList, exists, getCatalogName, getClassMetaData, getColumn, getColumnForName, getColumnForPosition, getColumns, getDatastoreIdentifierFullyQualified, getDiscriminatorMetaData, getIdentifier, getMemberColumnMappingForEmbeddedMember, getMemberColumnMappingForMember, getMemberColumnMappings, getName, getNumberOfColumns, getSchemaName, getStoreManager, getSurrogateColumn, getSurrogateMapping, getVersionMetaData, hasColumn, hasColumnName, hashCode, isInitialized, isInitializedModified, isPKInitialized, isValidated, postInitialize, preInitialize, tableExistsInDatastore, toString
-
-
-
-
Field Detail
-
sequenceNameMapping
private JavaTypeMapping sequenceNameMapping
Mapping for the sequence name column.
-
nextValMapping
private JavaTypeMapping nextValMapping
Mapping for the next value column
-
insertStmt
private java.lang.String insertStmt
-
incrementByStmt
private java.lang.String incrementByStmt
-
fetchStmt
private java.lang.String fetchStmt
-
sequenceNameColumnName
private java.lang.String sequenceNameColumnName
the sequence column name
-
nextValColumnName
private java.lang.String nextValColumnName
the next value column name
-
-
Constructor Detail
-
SequenceTable
public SequenceTable(DatastoreIdentifier identifier, RDBMSStoreManager storeMgr, java.lang.String seqNameColName, java.lang.String nextValColName)
Constructor- Parameters:
identifier- Datastore identifier for this tablestoreMgr- The RDBMSManager for this datastoreseqNameColName- Name for the "sequence name" columnnextValColName- Name for the "next value" column
-
-
Method Detail
-
initialize
public void initialize(org.datanucleus.ClassLoaderResolver clr)
Method to initialise the table.- Parameters:
clr- The ClassLoaderResolver
-
getIdMapping
public JavaTypeMapping getIdMapping()
Accessor for a mapping for the ID (persistable) for this table.- Returns:
- The (persistable) ID mapping.
-
getNextVal
public java.lang.Long getNextVal(java.lang.String sequenceName, org.datanucleus.store.connection.ManagedConnection conn, int incrementBy, DatastoreIdentifier tableIdentifier, java.lang.String columnName, int initialValue) throws java.sql.SQLExceptionAccessor for the nextval of a sequence- Parameters:
conn- Connection for this datastore.sequenceName- The sequence name (the key)incrementBy- The amount to increment (from the current value)tableIdentifier- Identifier for the table being incremented (used when there is no current value)columnName- Name of the column being incremented (used when there is no current value)initialValue- Initial value (if not using tableIdentifier/columnName to find the initial value)- Returns:
- The next value that should be used
- Throws:
java.sql.SQLException- Thrown when an error occurs in the process.
-
incrementSequence
private void incrementSequence(java.lang.String sequenceName, long incrementBy, org.datanucleus.store.connection.ManagedConnection conn) throws java.sql.SQLExceptionMethod to increment a sequence- Parameters:
conn- Connection to the datastore- Throws:
java.sql.SQLException- Thrown when an error occurs incrementing the sequence.
-
addSequence
private void addSequence(java.lang.String sequenceName, java.lang.Long nextVal, org.datanucleus.store.connection.ManagedConnection conn) throws java.sql.SQLExceptionMethod to insert a row in the SequenceTable- Parameters:
conn- Connection to the datastore- Throws:
java.sql.SQLException- Thrown when an error occurs inserting the sequence.
-
getMemberMapping
public JavaTypeMapping getMemberMapping(org.datanucleus.metadata.AbstractMemberMetaData mmd)
Accessor the for the mapping for a field stored in this table- Parameters:
mmd- MetaData for the field whose mapping we want- Returns:
- The mapping
-
-