final
void
|
addTypeOverride(BasicType typeOverride)
|
String
|
appendIdentitySelectToInsert(String insertString)
|
String
|
appendLockHint(LockMode mode, String tableName)
Some dialects support an alternative means to SELECT FOR UPDATE,
whereby a "lock hint" is appends to the table name in the from clause.
|
String
|
applyLocksToSql(String sql, LockOptions aliasedLockOptions, Map keyColumnNames)
Modifies the given SQL by applying the appropriate updates for the specified
lock modes and key columns.
|
boolean
|
areStringComparisonsCaseInsensitive()
Are string comparisons implicitly case insensitive.
|
boolean
|
bindLimitParametersFirst()
Does the LIMIT clause come at the start of the
SELECT statement, rather than at the end?
|
boolean
|
bindLimitParametersInReverseOrder()
ANSI SQL defines the LIMIT clause to be in the form LIMIT offset, limit.
|
SQLExceptionConverter
|
buildSQLExceptionConverter()
Build an instance of the SQLExceptionConverter preferred by this dialect for
converting SQLExceptions into Hibernate's JDBCException hierarchy.
|
char
|
closeQuote()
The character specific to this dialect used to close a quoted identifier.
|
int
|
convertToFirstRowValue(int zeroBasedFirstResult)
Hibernate APIs explicitly state that setFirstResult() should be a zero-based offset.
|
CaseFragment
|
createCaseFragment()
Create a CaseFragment strategy responsible
for handling this dialect's variations in how CASE statements are
handled.
|
JoinFragment
|
createOuterJoinFragment()
Create a JoinFragment strategy responsible
for handling this dialect's variations in how joins are handled.
|
boolean
|
doesReadCommittedCauseWritersToBlockReaders()
For the underlying database, is READ_COMMITTED isolation implemented by
forcing readers to wait for write locks to be released?
|
boolean
|
doesRepeatableReadCauseReadersToBlockWriters()
For the underlying database, is REPEATABLE_READ isolation implemented by
forcing writers to wait for read locks to be released?
|
boolean
|
dropConstraints()
Do we need to drop constraints before dropping tables in this dialect?
|
boolean
|
dropTemporaryTableAfterUse()
Do we need to drop the temporary table after use?
|
boolean
|
forUpdateOfColumns()
Is FOR UPDATE OF syntax supported?
|
boolean
|
forceLimitUsage()
Generally, if there is no limit applied to a Hibernate query we do not apply any limits
to the SQL query.
|
String
|
generateTemporaryTableName(String baseTableName)
Generate a temporary table name given the base table.
|
String
|
getAddColumnString()
The syntax used to add a column to a table (optional).
|
String
|
getAddForeignKeyConstraintString(String constraintName, String[] foreignKey, String referencedTable, String[] primaryKey, boolean referencesPrimaryKey)
The syntax used to add a foreign key constraint to a table.
|
String
|
getAddPrimaryKeyConstraintString(String constraintName)
The syntax used to add a primary key constraint to a table.
|
String
|
getCascadeConstraintsString()
Completely optional cascading drop clause
|
String
|
getCastTypeName(int code)
Get the name of the database type appropriate for casting operations
(via the CAST() SQL function) for the given java.sql.Types typecode.
|
String
|
getColumnComment(String comment)
|
String
|
getCreateMultisetTableString()
|
String
|
getCreateSequenceString(String sequenceName, int initialValue, int incrementSize)
|
String
|
getCreateSequenceString(String sequenceName)
Typically dialects which support sequences can create a sequence
with a single command.
|
String[]
|
getCreateSequenceStrings(String sequenceName)
|
String[]
|
getCreateSequenceStrings(String sequenceName, int initialValue, int incrementSize)
|
String
|
getCreateTableString()
Command used to create a table.
|
String
|
getCreateTemporaryTablePostfix()
Get any fragments needing to be postfixed to the command for
temporary table creation.
|
String
|
getCreateTemporaryTableString()
Command used to create a temporary table.
|
String
|
getCrossJoinSeparator()
Get the separator to use for defining cross joins when translating HQL queries.
|
String
|
getCurrentTimestampSQLFunctionName()
The name of the database-specific SQL function for retrieving the
current timestamp.
|
String
|
getCurrentTimestampSelectString()
Retrieve the command used to retrieve the current timestamp from the
database.
|
final
Properties
|
getDefaultProperties()
Retrieve a set of default Hibernate properties for this database.
|
static
Dialect
|
getDialect()
Get an instance of the dialect specified by the current System properties.
|
static
Dialect
|
getDialect(Properties props)
Get an instance of the dialect specified by the given properties or by
the current System properties.
|
String
|
getDropForeignKeyString()
|
String
|
getDropSequenceString(String sequenceName)
Typically dialects which support sequences can drop a sequence
with a single command.
|
String[]
|
getDropSequenceStrings(String sequenceName)
The multiline script used to drop a sequence.
|
String
|
getDropTemporaryTableString()
Command used to drop a temporary table.
|
String
|
getForUpdateNowaitString()
Retrieves the FOR UPDATE NOWAIT syntax specific to this dialect.
|
String
|
getForUpdateNowaitString(String aliases)
Get the FOR UPDATE OF column_list NOWAIT fragment appropriate
for this dialect given the aliases of the columns to be write locked.
|
String
|
getForUpdateString()
Get the string to append to SELECT statements to acquire locks
for this dialect.
|
String
|
getForUpdateString(String aliases)
Get the FOR UPDATE OF column_list fragment appropriate for this
dialect given the aliases of the columns to be write locked.
|
String
|
getForUpdateString(LockOptions lockOptions)
Given LockOptions (lockMode, timeout), determine the appropriate for update fragment to use.
|
String
|
getForUpdateString(String aliases, LockOptions lockOptions)
Get the FOR UPDATE OF column_list fragment appropriate for this
dialect given the aliases of the columns to be write locked.
|
String
|
getForUpdateString(LockMode lockMode)
Given a lock mode, determine the appropriate for update fragment to use.
|
final
Map<String, SQLFunction>
|
getFunctions()
Retrieves a map of the dialect's registered functions
(functionName => SQLFunction ).
|
String
|
getHibernateTypeName(int code, int length, int precision, int scale)
Get the name of the Hibernate Type associated
with the given java.sql.Types typecode with the given storage
specification parameters.
|
String
|
getHibernateTypeName(int code)
Get the name of the Hibernate Type associated with the given
java.sql.Types typecode.
|
String
|
getIdentityColumnString(int type)
The syntax used during DDL to define a column as being an IDENTITY of
a particular type.
|
String
|
getIdentityColumnString()
The syntax used during DDL to define a column as being an IDENTITY.
|
String
|
getIdentityInsertString()
The keyword used to insert a generated value into an identity column (or null).
|
String
|
getIdentitySelectString()
Get the select command to use to retrieve the last generated IDENTITY
value.
|
String
|
getIdentitySelectString(String table, String column, int type)
Get the select command to use to retrieve the last generated IDENTITY
value for a particular table
|
Set<String>
|
getKeywords()
|
String
|
getLimitString(String query, boolean hasOffset)
Apply s limit clause to the query.
|
String
|
getLimitString(String query, int offset, int limit)
Given a limit and an offset, apply the limit clause to the query.
|
LockingStrategy
|
getLockingStrategy(Lockable lockable, LockMode lockMode)
Get a strategy instance which knows how to acquire a database-level lock
of the specified mode for this dialect.
|
String
|
getLowercaseFunction()
The name of the SQL function that transforms a string to
lowercase
|
int
|
getMaxAliasLength()
What is the maximum length Hibernate can use for generated aliases?
|
Class
|
getNativeIdentifierGeneratorClass()
The class (which implements IdentifierGenerator )
which acts as this dialects native generation strategy.
|
String
|
getNoColumnsInsertString()
The fragment used to insert a row without specifying any column values.
|
String
|
getNullColumnString()
The keyword used to specify a nullable column.
|
String
|
getQuerySequencesString()
Get the select command used retrieve the names of all sequences.
|
String
|
getReadLockString(int timeout)
Get the string to append to SELECT statements to acquire WRITE locks
for this dialect.
|
ResultSet
|
getResultSet(CallableStatement statement)
|
String
|
getSelectClauseNullString(int sqlType)
Given a java.sql.Types type code, determine an appropriate
null value to use in a select clause.
|
String
|
getSelectGUIDString()
Get the command used to select a GUID from the underlying database.
|
String
|
getSelectSequenceNextValString(String sequenceName)
Generate the select expression fragment that will retrieve the next
value of a sequence as part of another (typically DML) statement.
|
String
|
getSequenceNextValString(String sequenceName)
Generate the appropriate select statement to to retrieve the next value
of a sequence.
|
String
|
getTableComment(String comment)
|
String
|
getTableTypeString()
|
String
|
getTypeName(int code)
Get the name of the database type associated with the given
java.sql.Types typecode.
|
String
|
getTypeName(int code, int length, int precision, int scale)
Get the name of the database type associated with the given
java.sql.Types typecode with the given storage specification
parameters.
|
final
List<BasicType>
|
getTypeOverrides()
Retrieve dialect-specific types for overriding "basic" types.
|
ViolatedConstraintNameExtracter
|
getViolatedConstraintNameExtracter()
|
String
|
getWriteLockString(int timeout)
Get the string to append to SELECT statements to acquire WRITE locks
for this dialect.
|
boolean
|
hasAlterTable()
Does this dialect support the ALTER TABLE syntax?
|
boolean
|
hasDataTypeInIdentityColumn()
Whether this dialect have an Identity clause added to the data type or a
completely separate identity data type
|
boolean
|
hasSelfReferentialForeignKeyBug()
|
boolean
|
isCurrentTimestampSelectStringCallable()
|
boolean
|
isLockTimeoutParameterized()
If this dialect supports specifying lock timeouts, are those timeouts
rendered into the SQL string as parameters.
|
char
|
openQuote()
The character specific to this dialect used to begin a quoted identifier.
|
Boolean
|
performTemporaryTableDDLInIsolation()
Does the dialect require that temporary table DDL statements occur in
isolation from other statements? This would be the case if the creation
would cause any current transaction to get committed implicitly.
|
boolean
|
qualifyIndexName()
Do we need to qualify index names with the schema name?
|
final
String
|
quote(String name)
Apply dialect-specific quoting.
|
void
|
registerColumnType(int code, int capacity, String name)
Subclasses register a type name for the given type code and maximum
column length.
|
void
|
registerColumnType(int code, String name)
Subclasses register a type name for the given type code.
|
void
|
registerFunction(String name, SQLFunction function)
|
void
|
registerHibernateType(int code, String name)
Registers a Hibernate Type name for the given
java.sql.Types type code.
|
void
|
registerHibernateType(int code, int capacity, String name)
Registers a Hibernate Type name for the given
java.sql.Types type code and maximum column length.
|
void
|
registerKeyword(String word)
|
int
|
registerResultSetOutParameter(CallableStatement statement, int position)
Registers an OUT parameter which will be returning a
ResultSet .
|
boolean
|
replaceResultVariableInOrderByClauseWithPosition()
Does this dialect require that references to result variables
(i.e, select expresssion aliases) in an ORDER BY clause be
replaced by column positions (1-origin) as defined
by the select clause?
|
boolean
|
requiresCastingOfParametersInSelectClause()
Does this dialect require that parameters appearing in the SELECT clause be wrapped in cast()
calls to tell the db parser the expected type.
|
boolean
|
supportsBindAsCallableArgument()
Does this dialect support using a JDBC bind parameter as an argument
to a function or procedure call?
|
boolean
|
supportsCascadeDelete()
|
boolean
|
supportsCircularCascadeDeleteConstraints()
Does this dialect support definition of cascade delete constraints
which can cause circular chains?
|
boolean
|
supportsColumnCheck()
Does this dialect support column-level check constraints?
|
boolean
|
supportsCommentOn()
|
boolean
|
supportsCurrentTimestampSelection()
Does this dialect support a way to retrieve the database's current
timestamp value?
|
boolean
|
supportsEmptyInList()
Does this dialect support empty IN lists?
For example, is [where XYZ in ()] a supported construct?
|
boolean
|
supportsExistsInSelect()
Does the dialect support an exists statement in the select clause?
|
boolean
|
supportsExpectedLobUsagePattern()
Expected LOB usage pattern is such that I can perform an insert
via prepared statement with a parameter binding for a LOB value
without crazy casting to JDBC driver implementation-specific classes...
|
boolean
|
supportsIdentityColumns()
Does this dialect support identity column key generation?
|
boolean
|
supportsIfExistsAfterTableName()
|
boolean
|
supportsIfExistsBeforeTableName()
|
boolean
|
supportsInsertSelectIdentity()
Does the dialect support some form of inserting and selecting
the generated IDENTITY value all in the same statement.
|
boolean
|
supportsLimit()
Does this dialect support some form of limiting query results
via a SQL clause?
|
boolean
|
supportsLimitOffset()
Does this dialect's LIMIT support (if any) additionally
support specifying an offset?
|
boolean
|
supportsLobValueChangePropogation()
Does the dialect support propagating changes to LOB
values back to the database? Talking about mutating the
internal value of the locator as opposed to supplying a new
locator instance...
|
boolean
|
supportsLockTimeouts()
Informational metadata about whether this dialect is known to support
specifying timeouts for requested lock acquisitions.
|
boolean
|
supportsNotNullUnique()
|
boolean
|
supportsOuterJoinForUpdate()
Does this dialect support FOR UPDATE in conjunction with
outer joined rows?
|
boolean
|
supportsParametersInInsertSelect()
Does this dialect support parameters within the SELECT clause of
INSERT ...
|
boolean
|
supportsPooledSequences()
Does this dialect support "pooled" sequences.
|
boolean
|
supportsResultSetPositionQueryMethodsOnForwardOnlyCursor()
Does this dialect support asking the result set its positioning
information on forward only cursors.
|
boolean
|
supportsRowValueConstructorSyntax()
Is this dialect known to support what ANSI-SQL terms "row value
constructor" syntax; sometimes called tuple syntax.
|
boolean
|
supportsRowValueConstructorSyntaxInInList()
If the dialect supports row values ,
does it offer such support in IN lists as well?
For example, "...
|
boolean
|
supportsSequences()
Does this dialect support sequences?
|
boolean
|
supportsSubqueryOnMutatingTable()
Does this dialect support referencing the table being mutated in
a subquery.
|
boolean
|
supportsSubselectAsInPredicateLHS()
Are subselects supported as the left-hand-side (LHS) of
IN-predicates.
|
boolean
|
supportsTableCheck()
Does this dialect support table-level check constraints?
|
boolean
|
supportsTemporaryTables()
Does this dialect support temporary tables?
|
boolean
|
supportsTupleCounts()
Does this dialect support `count(a,b)`?
|
boolean
|
supportsTupleDistinctCounts()
Does this dialect support `count(distinct a,b)`?
|
boolean
|
supportsUnboundedLobLocatorMaterialization()
Is it supported to materialize a LOB locator outside the transaction in
which it was created?
Again, part of the trickiness here is the fact that this is largely
driver dependent.
|
boolean
|
supportsUnionAll()
Does this dialect support UNION ALL, which is generally a faster
variant of UNION?
|
boolean
|
supportsUnique()
Does this dialect support the UNIQUE column syntax?
|
boolean
|
supportsUniqueConstraintInCreateAlterTable()
Does this dialect support adding Unique constraints via create and alter table ?
|
boolean
|
supportsVariableLimit()
Does this dialect support bind variables (i.e., prepared statement
parameters) for its limit/offset?
|
String
|
toBooleanValueString(boolean bool)
The SQL literal value to which this database maps boolean values.
|
String
|
toString()
|
String
|
transformSelectString(String select)
Meant as a means for end users to affect the select strings being sent
to the database and perhaps manipulate them in some fashion.
|
boolean
|
useInputStreamToInsertBlob()
Should LOBs (both BLOB and CLOB) be bound using stream operations (i.e.
|
boolean
|
useMaxForLimit()
Does the LIMIT clause take a "maximum" row number instead
of a total number of returned rows?
This is easiest understood via an example.
|