- All Implemented Interfaces:
Dialect
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic classstatic classstatic classstatic classNested classes/interfaces inherited from class org.seasar.doma.jdbc.dialect.StandardDialect
StandardDialect.StandardCriteriaBuilder, StandardDialect.StandardExpressionFunctions, StandardDialect.StandardJdbcMappingVisitor, StandardDialect.StandardScriptBlockContext, StandardDialect.StandardSqlLogFormattingVisitor -
Field Summary
FieldsModifier and TypeFieldDescriptionthe JDBC type forResultSetprotected static final Stringthe SQLState that represents unique violationFields inherited from class org.seasar.doma.jdbc.dialect.StandardDialect
CLOSE_QUOTE, expressionFunctions, jdbcMappingVisitor, OPEN_QUOTE, sqlLogFormattingVisitor, UNIQUE_CONSTRAINT_VIOLATION_STATE_CODES -
Constructor Summary
ConstructorsConstructorDescriptionPostgresDialect(ExpressionFunctions expressionFunctions) PostgresDialect(JdbcMappingVisitor jdbcMappingVisitor) PostgresDialect(JdbcMappingVisitor jdbcMappingVisitor, SqlLogFormattingVisitor sqlLogFormattingVisitor) PostgresDialect(JdbcMappingVisitor jdbcMappingVisitor, SqlLogFormattingVisitor sqlLogFormattingVisitor, ExpressionFunctions expressionFunctions) PostgresDialect(SqlLogFormattingVisitor sqlLogFormattingVisitor) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringcreateIdentitySequenceFunctionExpression(String catalogName, String schemaName, String tableName, String columnName, boolean isQuoteRequired, boolean isIdColumnQuoteRequired) Creates the context object to process an SQL block in a script.Returns the criteria builder for this dialect.Sql<?>getIdentityReservationSql(String catalogName, String schemaName, String tableName, String columnName, boolean isQuoteRequired, boolean isIdColumnQuoteRequired, int reservationSize) Returns an SQL object to reserve identity in the database.getIdentitySelectSql(String catalogName, String schemaName, String tableName, String columnName, boolean isQuoteRequired, boolean isIdColumnQuoteRequired) Returns an SQL object to retrieve IDENTITY values that were generated during an insert operation.getName()Returns the name of this dialect.getSequenceNextValSql(String qualifiedSequenceName, long allocationSize) Returns an SQL object to retrieve the next value from a database sequence.getUpsertAssembler(UpsertAssemblerContext context) Returns the UpsertAssembler implementation for the given context.booleanisUniqueConstraintViolated(SQLException sqlException) Determines whether the given SQLException represents a unique constraint violation.booleanDetermines whether this dialect supports retrieving auto-generated keys viaStatement.getGeneratedKeys().booleanDetermines whether this dialect supports retrieving generated values from batch executions.booleanDetermines whether this dialect supports the IDENTITY column.booleanDetermines whether this dialect supports reserving identity values in advance.booleanDetermines whether this dialect supports result sets as OUT parameters in stored procedures.booleansupportsSelectForUpdate(SelectForUpdateType type, boolean withTargets) Determines whether this dialect supports pessimistic locking with the specified options.booleanDetermines whether this dialect supports database sequences.protected SqlNodetoForUpdateSqlNode(SqlNode sqlNode, SelectForUpdateType forUpdateType, int waitSeconds, String... aliases) protected SqlNodetoPagingSqlNode(SqlNode sqlNode, long offset, long limit) Methods inherited from class org.seasar.doma.jdbc.dialect.StandardDialect
applyQuote, getAutoGeneratedKeysType, getCauseSQLException, getDeleteAssembler, getErrorCode, getExpressionFunctions, getInsertAssembler, getJdbcMappingVisitor, getMultiInsertAssembler, getRootCause, getScriptBlockDelimiter, getSqlLogFormattingVisitor, getSQLState, getUpdateAssembler, includesIdentityColumn, removeQuote, supportsBatchUpdateResults, toCountCalculatingSqlNode, toCountGettingSqlNode, transformSelectSqlNode, transformSelectSqlNodeForGettingCountMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.seasar.doma.jdbc.dialect.Dialect
includesIdentityColumn, supportsAliasInDeleteClause, supportsAliasInDeleteStatement, supportsAliasInUpdateClause, supportsAliasInUpdateStatement, supportsAutoIncrementWhenInsertingMultipleRows, supportsModOperator, supportsMultiRowInsertStatement, supportsParenthesesForSetOperands, supportsReturning, supportsUpsertEmulationWithMergeStatement
-
Field Details
-
UNIQUE_CONSTRAINT_VIOLATION_STATE_CODE
the SQLState that represents unique violation- See Also:
-
RESULT_SET
the JDBC type forResultSet
-
-
Constructor Details
-
PostgresDialect
public PostgresDialect() -
PostgresDialect
-
PostgresDialect
-
PostgresDialect
-
PostgresDialect
public PostgresDialect(JdbcMappingVisitor jdbcMappingVisitor, SqlLogFormattingVisitor sqlLogFormattingVisitor) -
PostgresDialect
public PostgresDialect(JdbcMappingVisitor jdbcMappingVisitor, SqlLogFormattingVisitor sqlLogFormattingVisitor, ExpressionFunctions expressionFunctions)
-
-
Method Details
-
getName
Description copied from interface:DialectReturns the name of this dialect.The dialect name typically identifies the database system that this dialect supports. This name can be used for logging, debugging, or to make decisions based on the specific database being used.
Each dialect implementation should return a unique and descriptive name.
- Specified by:
getNamein interfaceDialect- Overrides:
getNamein classStandardDialect- Returns:
- the name of this dialect
-
toForUpdateSqlNode
protected SqlNode toForUpdateSqlNode(SqlNode sqlNode, SelectForUpdateType forUpdateType, int waitSeconds, String... aliases) - Overrides:
toForUpdateSqlNodein classStandardDialect
-
toPagingSqlNode
- Overrides:
toPagingSqlNodein classStandardDialect
-
isUniqueConstraintViolated
Description copied from interface:DialectDetermines whether the given SQLException represents a unique constraint violation.Different database systems use different error codes and states to indicate unique constraint violations. This method abstracts these differences.
- Specified by:
isUniqueConstraintViolatedin interfaceDialect- Overrides:
isUniqueConstraintViolatedin classStandardDialect- Parameters:
sqlException- the SQL exception to analyze- Returns:
trueif the exception represents a unique constraint violation,falseotherwise
-
getIdentitySelectSql
public PreparedSql getIdentitySelectSql(String catalogName, String schemaName, String tableName, String columnName, boolean isQuoteRequired, boolean isIdColumnQuoteRequired) Description copied from interface:DialectReturns an SQL object to retrieve IDENTITY values that were generated during an insert operation.This method is used to create the SQL statement that retrieves the last generated identity value for a specific table and column.
This method is available only if
Dialect.supportsIdentity()returnstrue.- Specified by:
getIdentitySelectSqlin interfaceDialect- Overrides:
getIdentitySelectSqlin classStandardDialect- Parameters:
catalogName- the catalog name of the table (may benullif not applicable)schemaName- the schema name of the table (may benullif not applicable)tableName- the name of the table containing the identity columncolumnName- the name of the identity columnisQuoteRequired- whether the table name should be quoted in the SQL statementisIdColumnQuoteRequired- whether the identity column name should be quoted in the SQL statement- Returns:
- the SQL object that can be executed to retrieve the generated identity value
-
getIdentityReservationSql
public Sql<?> getIdentityReservationSql(String catalogName, String schemaName, String tableName, String columnName, boolean isQuoteRequired, boolean isIdColumnQuoteRequired, int reservationSize) Description copied from interface:DialectReturns an SQL object to reserve identity in the database.This method is available, only if
Dialect.supportsIdentityReservation()returnstrue.- Specified by:
getIdentityReservationSqlin interfaceDialect- Overrides:
getIdentityReservationSqlin classStandardDialect- Parameters:
catalogName- the catalog nameschemaName- the schema nametableName- the table namecolumnName- the IDENTITY column nameisQuoteRequired- whether the quotation marks are requiredisIdColumnQuoteRequired- whether the quotation marks are required for the IDENTITY columnreservationSize- the size of the reservation- Returns:
- the SQL object
-
createIdentitySequenceFunctionExpression
-
getSequenceNextValSql
Description copied from interface:DialectReturns an SQL object to retrieve the next value from a database sequence.This method creates the SQL statement needed to get the next value from a sequence.
The allocation size parameter can be used to optimize sequence access by retrieving multiple values at once in database systems that support this feature.
This method is available only if
Dialect.supportsSequence()returnstrue.- Specified by:
getSequenceNextValSqlin interfaceDialect- Overrides:
getSequenceNextValSqlin classStandardDialect- Parameters:
qualifiedSequenceName- the fully qualified name of the sequence, which may include catalog and schema information depending on the database systemallocationSize- the number of sequence values to allocate at once for optimization; a value greater than 1 may improve performance by reducing database calls- Returns:
- the SQL object that can be executed to retrieve the next sequence value(s)
-
supportsIdentity
public boolean supportsIdentity()Description copied from interface:DialectDetermines whether this dialect supports the IDENTITY column.An IDENTITY column is a column that automatically generates a unique value for each row when data is inserted. The exact implementation varies by database system.
- Specified by:
supportsIdentityin interfaceDialect- Overrides:
supportsIdentityin classStandardDialect- Returns:
trueif this dialect supports IDENTITY columns,falseotherwise
-
supportsSequence
public boolean supportsSequence()Description copied from interface:DialectDetermines whether this dialect supports database sequences.A sequence is a database object that generates a sequence of unique numbers. Sequences are commonly used to generate primary key values.
- Specified by:
supportsSequencein interfaceDialect- Overrides:
supportsSequencein classStandardDialect- Returns:
trueif this dialect supports sequences,falseotherwise
-
supportsIdentityReservation
public boolean supportsIdentityReservation()Description copied from interface:DialectDetermines whether this dialect supports reserving identity values in advance.Some database systems allow pre-allocating a range of identity values, which can improve performance in certain scenarios.
- Specified by:
supportsIdentityReservationin interfaceDialect- Overrides:
supportsIdentityReservationin classStandardDialect- Returns:
trueif this dialect supports identity reservation,falseotherwise
-
supportsSelectForUpdate
Description copied from interface:DialectDetermines whether this dialect supports pessimistic locking with the specified options.Pessimistic locking (SELECT FOR UPDATE) prevents other transactions from modifying selected rows. Different database systems support different variations of this feature.
- Specified by:
supportsSelectForUpdatein interfaceDialect- Overrides:
supportsSelectForUpdatein classStandardDialect- Parameters:
type- the type of pessimistic locking (e.g., standard FOR UPDATE, NOWAIT, WAIT)withTargets-trueif specific columns are targeted for locking,falsefor row-level locking- Returns:
trueif this dialect supports the specified locking options,falseotherwise
-
supportsResultSetReturningAsOutParameter
public boolean supportsResultSetReturningAsOutParameter()Description copied from interface:DialectDetermines whether this dialect supports result sets as OUT parameters in stored procedures.Some database systems allow stored procedures to return result sets through OUT parameters, while others use different mechanisms (like returning result sets directly).
- Specified by:
supportsResultSetReturningAsOutParameterin interfaceDialect- Overrides:
supportsResultSetReturningAsOutParameterin classStandardDialect- Returns:
trueif this dialect supports result sets as OUT parameters,falseotherwise
-
supportsAutoGeneratedKeys
public boolean supportsAutoGeneratedKeys()Description copied from interface:DialectDetermines whether this dialect supports retrieving auto-generated keys viaStatement.getGeneratedKeys().This feature allows retrieving values that were automatically generated during an insert operation, such as identity column values, without executing a separate query.
- Specified by:
supportsAutoGeneratedKeysin interfaceDialect- Overrides:
supportsAutoGeneratedKeysin classStandardDialect- Returns:
trueif this dialect supports retrieving auto-generated keys,falseotherwise
-
supportsBatchExecutionReturningGeneratedValues
public boolean supportsBatchExecutionReturningGeneratedValues()Description copied from interface:DialectDetermines whether this dialect supports retrieving generated values from batch executions.Some database systems can return auto-generated values (like identity columns) even when executing statements in batch mode, while others cannot.
The default implementation returns
false.- Returns:
trueif this dialect supports retrieving generated values from batch executions,falseotherwise
-
getResultSetType
Description copied from interface:DialectReturns theJdbcTypeobject that corresponds to theResultSetclass.This method is available, only if
Dialect.supportsResultSetReturningAsOutParameter()istrue.- Specified by:
getResultSetTypein interfaceDialect- Overrides:
getResultSetTypein classStandardDialect- Returns:
- the
JdbcTypeobject for theResultSetclass
-
createScriptBlockContext
Description copied from interface:DialectCreates the context object to process an SQL block in a script.- Specified by:
createScriptBlockContextin interfaceDialect- Overrides:
createScriptBlockContextin classStandardDialect- Returns:
- the context object
-
getCriteriaBuilder
Description copied from interface:DialectReturns the criteria builder for this dialect.The criteria builder is used to construct SQL queries using the criteria API, which provides a type-safe way to build queries programmatically. The returned builder will generate SQL that is compatible with the specific database dialect.
- Specified by:
getCriteriaBuilderin interfaceDialect- Overrides:
getCriteriaBuilderin classStandardDialect- Returns:
- the criteria builder for this dialect
-
getUpsertAssembler
Description copied from interface:DialectReturns the UpsertAssembler implementation for the given context.- Specified by:
getUpsertAssemblerin interfaceDialect- Overrides:
getUpsertAssemblerin classStandardDialect- Parameters:
context- the UpsertAssemblerContext object- Returns:
- the UpsertAssembler object for the given context
-