Package org.apache.cayenne.dba.sqlserver
Class SQLServerPkGenerator
- java.lang.Object
-
- org.apache.cayenne.dba.JdbcPkGenerator
-
- org.apache.cayenne.dba.oracle.OraclePkGenerator
-
- org.apache.cayenne.dba.sqlserver.SQLServerPkGenerator
-
- All Implemented Interfaces:
PkGenerator
public class SQLServerPkGenerator extends OraclePkGenerator
The default PK generator for MS SQL, which uses sequences to generate a PK for an integer key type and NEWID() for UNIQUEIDENTIFIER key type- Since:
- 4.1
-
-
Field Summary
-
Fields inherited from class org.apache.cayenne.dba.JdbcPkGenerator
adapter, DEFAULT_PK_CACHE_SIZE, pkCache, pkCacheSize, pkStartValue
-
-
Constructor Summary
Constructors Modifier Constructor Description SQLServerPkGenerator()protectedSQLServerPkGenerator(JdbcAdapter adapter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<String>createAutoPkStatements(List<DbEntity> dbEntities)Creates a list of CREATE SEQUENCE statements for the list of DbEntities.protected StringcreateSequenceString(DbEntity ent)List<String>dropAutoPkStatements(List<DbEntity> dbEntities)Creates a list of DROP SEQUENCE statements for the list of DbEntities.ObjectgeneratePk(DataNode node, DbAttribute pk)Generates a unique and non-repeating primary key for specified dbEntity.protected StringgetSequencePrefix()protected StringguidPkFromDatabase(DataNode node, DbEntity entity)protected StringselectAllSequencesQuery()protected StringselectNextValQuery(String sequenceName)protected StringsequenceName(DbEntity entity)Returns expected primary key sequence name for a DbEntity.-
Methods inherited from class org.apache.cayenne.dba.oracle.OraclePkGenerator
createAutoPk, dropAutoPk, dropSequenceString, getExistingSequences, longPkFromDatabase, pkCacheSize
-
Methods inherited from class org.apache.cayenne.dba.JdbcPkGenerator
autoPkTableExists, dropAutoPkString, getAdapter, getPkCacheSize, pkCreateString, pkDeleteString, pkSelectString, pkTableCreateString, pkUpdateString, reset, runUpdate, setAdapter, setPkCacheSize
-
-
-
-
Constructor Detail
-
SQLServerPkGenerator
public SQLServerPkGenerator()
-
SQLServerPkGenerator
protected SQLServerPkGenerator(JdbcAdapter adapter)
-
-
Method Detail
-
createSequenceString
protected String createSequenceString(DbEntity ent)
- Overrides:
createSequenceStringin classOraclePkGenerator
-
getSequencePrefix
protected String getSequencePrefix()
- Overrides:
getSequencePrefixin classOraclePkGenerator
-
selectNextValQuery
protected String selectNextValQuery(String sequenceName)
- Overrides:
selectNextValQueryin classOraclePkGenerator
-
createAutoPkStatements
public List<String> createAutoPkStatements(List<DbEntity> dbEntities)
Description copied from class:OraclePkGeneratorCreates a list of CREATE SEQUENCE statements for the list of DbEntities.- Specified by:
createAutoPkStatementsin interfacePkGenerator- Overrides:
createAutoPkStatementsin classOraclePkGenerator
-
dropAutoPkStatements
public List<String> dropAutoPkStatements(List<DbEntity> dbEntities)
Description copied from class:OraclePkGeneratorCreates a list of DROP SEQUENCE statements for the list of DbEntities.- Specified by:
dropAutoPkStatementsin interfacePkGenerator- Overrides:
dropAutoPkStatementsin classOraclePkGenerator
-
generatePk
public Object generatePk(DataNode node, DbAttribute pk) throws Exception
Description copied from class:JdbcPkGeneratorGenerates a unique and non-repeating primary key for specified dbEntity.This implementation is naive since it does not lock the database rows when executing select and subsequent update. Adapter-specific implementations are more robust.
- Specified by:
generatePkin interfacePkGenerator- Overrides:
generatePkin classJdbcPkGenerator- Throws:
Exception
-
selectAllSequencesQuery
protected String selectAllSequencesQuery()
- Overrides:
selectAllSequencesQueryin classOraclePkGenerator
-
sequenceName
protected String sequenceName(DbEntity entity)
Description copied from class:OraclePkGeneratorReturns expected primary key sequence name for a DbEntity.- Overrides:
sequenceNamein classOraclePkGenerator
-
guidPkFromDatabase
protected String guidPkFromDatabase(DataNode node, DbEntity entity) throws SQLException
- Throws:
SQLException
-
-