Class AbstractHANADialect

java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.dialect.AbstractHANADialect
All Implemented Interfaces:
FunctionContributor, TypeContributor, ConversionContext
Direct Known Subclasses:
HANAColumnStoreDialect, HANADialect, HANARowStoreDialect

@Deprecated(forRemoval=true) public abstract class AbstractHANADialect extends Dialect
Deprecated, for removal: This API element is subject to removal in a future version.
Will be replaced with HANADialect in the future.
An abstract base class for SAP HANA dialects.

For more information on interacting with the SAP HANA database, refer to the SAP HANA SQL and System Views Reference and the SAP HANA Client Interface Programming Reference.

Note: This dialect is configured to create foreign keys with on update cascade.

  • Field Details

    • USE_DEFAULT_TABLE_TYPE_COLUMN

      public static final String USE_DEFAULT_TABLE_TYPE_COLUMN
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
  • Constructor Details

    • AbstractHANADialect

      public AbstractHANADialect(DatabaseVersion version)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • AbstractHANADialect

      public AbstractHANADialect(HANAServerConfiguration configuration, boolean defaultTableTypeColumn)
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Details

    • contribute

      public void contribute(TypeContributions typeContributions, ServiceRegistry serviceRegistry)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: TypeContributor
      Contribute types
      Specified by:
      contribute in interface TypeContributor
      Overrides:
      contribute in class Dialect
      Parameters:
      typeContributions - The callback for adding contributed types
      serviceRegistry - The service registry
    • isDefaultTableTypeColumn

      protected boolean isDefaultTableTypeColumn()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • isCloud

      protected boolean isCloud()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • columnType

      protected String columnType(int sqlTypeCode)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The database column type name for a given JDBC type code defined in Types or SqlTypes. This default implementation returns the ANSI-standard type name.

      This method may be overridden by concrete Dialects as an alternative to Dialect.registerColumnTypes(TypeContributions, ServiceRegistry) for simple registrations.

      Note that:

      1. Implementations of this method are expected to define a sensible mapping forTypes.NCLOB Types.NCHAR, and Types.NVARCHAR. On some database, these types are simply remapped to CLOB, CHAR, and VARCHAR.
      2. Mappings for Types.TIMESTAMP and Types.TIMESTAMP_WITH_TIMEZONE should support explicit specification of precision if possible.
      3. As specified by DdlTypeRegistry.getDescriptor(int), this method never receives Types.LONGVARCHAR, Types.LONGNVARCHAR, nor Types.LONGVARBINARY, which are considered synonyms for their non-LONG counterparts.
      4. On the other hand, the types SqlTypes.LONG32VARCHAR, SqlTypes.LONG32NVARCHAR, and SqlTypes.LONG32VARBINARY are not synonyms, and implementations of this method must define sensible mappings, for example to database-native TEXT or CLOB types.
      Overrides:
      columnType in class Dialect
      Parameters:
      sqlTypeCode - a SQL type code
      Returns:
      a column type name, with $l, $p, $s placeholders for length, precision, scale
      See Also:
    • registerColumnTypes

      protected void registerColumnTypes(TypeContributions typeContributions, ServiceRegistry serviceRegistry)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Register ANSI-standard column types using the length limits defined by Dialect.getMaxVarcharLength(), Dialect.getMaxNVarcharLength(), and Dialect.getMaxVarbinaryLength().

      This method is always called when a Dialect is instantiated.

      Overrides:
      registerColumnTypes in class Dialect
    • getDefaultNonContextualLobCreation

      public boolean getDefaultNonContextualLobCreation()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The default value to use for the configuration property "hibernate.jdbc.lob.non_contextual_creation".
      Overrides:
      getDefaultNonContextualLobCreation in class Dialect
    • getDefaultUseGetGeneratedKeys

      public boolean getDefaultUseGetGeneratedKeys()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The default value to use for the configuration property "hibernate.jdbc.use_get_generated_keys".
      Overrides:
      getDefaultUseGetGeneratedKeys in class Dialect
    • createVersion

      @Deprecated(forRemoval=true) protected static DatabaseVersion createVersion(DialectResolutionInfo info)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • castPattern

      public String castPattern(CastType from, CastType to)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Obtain a pattern for the SQL equivalent to a cast() function call. The resulting pattern must contain ?1 and ?2 placeholders for the arguments.
      Overrides:
      castPattern in class Dialect
      Parameters:
      from - a CastType indicating the type of the value argument
      to - a CastType indicating the type the value argument is cast to
    • getDefaultTimestampPrecision

      public int getDefaultTimestampPrecision()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      This is the default precision for a generated column of type TIMESTAMP mapped to a Timestamp or LocalDateTime.

      Usually 6 (microseconds) or 3 (milliseconds).

      Overrides:
      getDefaultTimestampPrecision in class Dialect
      Returns:
      the default precision, in decimal digits, of the fractional seconds field
      See Also:
    • getDefaultDecimalPrecision

      public int getDefaultDecimalPrecision()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      This is the default precision for a generated column of exact numeric type DECIMAL or NUMERIC mapped to a BigInteger or BigDecimal.

      Usually returns the maximum precision of the database, except when there is no such maximum precision, or the maximum precision is very high.

      Overrides:
      getDefaultDecimalPrecision in class Dialect
      Returns:
      the default precision, in decimal digits
      See Also:
    • getMaxVarcharLength

      public int getMaxVarcharLength()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The biggest size value that can be supplied as argument to a Types.VARCHAR-like type.

      For longer column lengths, use some sort of text-like type for the column.

      Overrides:
      getMaxVarcharLength in class Dialect
    • getMaxNVarcharLength

      public int getMaxNVarcharLength()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The biggest size value that can be supplied as argument to a Types.NVARCHAR-like type.

      For longer column lengths, use some sort of ntext-like type for the column.

      Overrides:
      getMaxNVarcharLength in class Dialect
    • getMaxVarbinaryLength

      public int getMaxVarbinaryLength()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The biggest size value that can be supplied as argument to a Types.VARBINARY-like type.

      For longer column lengths, use some sort of image-like type for the column.

      Overrides:
      getMaxVarbinaryLength in class Dialect
    • initializeFunctionRegistry

      public void initializeFunctionRegistry(FunctionContributions functionContributions)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Initialize the given registry with any dialect-specific functions.

      Support for certain SQL functions is required, and if the database does not support a required function, then the dialect must define a way to emulate it.

      These required functions include the functions defined by the JPA query language specification:

      • avg(arg) - aggregate function
      • count([distinct ]arg) - aggregate function
      • max(arg) - aggregate function
      • min(arg) - aggregate function
      • sum(arg) - aggregate function
      • coalesce(arg0, arg1, ...)
      • nullif(arg0, arg1)
      • lower(arg)
      • upper(arg)
      • length(arg)
      • concat(arg0, arg1, ...)
      • locate(pattern, string[, start])
      • substring(string, start[, length])
      • trim([[spec ][character ]from] string)
      • abs(arg)
      • mod(arg0, arg1)
      • sqrt(arg)
      • current date
      • current time
      • current timestamp
      Along with an additional set of functions defined by ANSI SQL:
      • any(arg) - aggregate function
      • every(arg) - aggregate function
      • var_samp(arg) - aggregate function
      • var_pop(arg) - aggregate function
      • stddev_samp(arg) - aggregate function
      • stddev_pop(arg) - aggregate function
      • cast(arg as Type)
      • extract(field from arg)
      • ln(arg)
      • exp(arg)
      • power(arg0, arg1)
      • floor(arg)
      • ceiling(arg)
      • position(pattern in string)
      • substring(string from start[ for length])
      • overlay(string placing replacement from start[ for length])
      And the following functions for working with java.time types:
      • local date
      • local time
      • local datetime
      • offset datetime
      • instant
      And a number of additional "standard" functions:
      • left(string, length)
      • right(string, length)
      • replace(string, pattern, replacement)
      • pad(string with length spec[ character])
      • repeat(string, times)
      • pi
      • log10(arg)
      • log(base, arg)
      • sign(arg)
      • sin(arg)
      • cos(arg)
      • tan(arg)
      • asin(arg)
      • acos(arg)
      • atan(arg)
      • atan2(arg0, arg1)
      • round(arg0[, arg1])
      • truncate(arg0[, arg1])
      • sinh(arg)
      • tanh(arg)
      • cosh(arg)
      • least(arg0, arg1, ...)
      • greatest(arg0, arg1, ...)
      • degrees(arg)
      • radians(arg)
      • bitand(arg1, arg1)
      • bitor(arg1, arg1)
      • bitxor(arg1, arg1)
      • format(datetime as pattern)
      • collate(string as collation)
      • str(arg) - synonym of cast(a as String)
      • ifnull(arg0, arg1) - synonym of coalesce(a, b)
      Finally, the following functions are defined as abbreviations for extract(), and desugared by the parser:
      • second(arg) - synonym of extract(second from a)
      • minute(arg) - synonym of extract(minute from a)
      • hour(arg) - synonym of extract(hour from a)
      • day(arg) - synonym of extract(day from a)
      • month(arg) - synonym of extract(month from a)
      • year(arg) - synonym of extract(year from a)
      Note that according to this definition, the second() function returns a floating point value, contrary to the integer type returned by the native function with this name on many databases. Thus, we don't just naively map these HQL functions to the native SQL functions with the same names.
      Overrides:
      initializeFunctionRegistry in class Dialect
    • getSqlAstTranslatorFactory

      public SqlAstTranslatorFactory getSqlAstTranslatorFactory()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Return a SqlAstTranslatorFactory specific to this dialect, or null to use the standard translator.
      Overrides:
      getSqlAstTranslatorFactory in class Dialect
      See Also:
    • extractPattern

      public String extractPattern(TemporalUnit unit)
      Deprecated, for removal: This API element is subject to removal in a future version.
      HANA has no extract() function, but we can emulate it using the appropriate named functions instead of extract(). The supported fields are TemporalUnit.YEAR, TemporalUnit.MONTH TemporalUnit.DAY, TemporalUnit.HOUR, TemporalUnit.MINUTE, TemporalUnit.SECOND TemporalUnit.WEEK, TemporalUnit.DAY_OF_WEEK, TemporalUnit.DAY_OF_MONTH, TemporalUnit.DAY_OF_YEAR.
      Overrides:
      extractPattern in class Dialect
      Parameters:
      unit - the first argument
    • buildSQLExceptionConversionDelegate

      public SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      An instance of SQLExceptionConversionDelegate for interpreting dialect-specific error or SQLState codes.

      If this method is overridden to return a non-null value, the default SQLExceptionConverter will use the returned SQLExceptionConversionDelegate in addition to the following standard delegates:

      1. a "static" delegate based on the JDBC4-defined SQLException hierarchy, and
      2. a delegate that interprets SQLState codes as either X/Open or SQL-2003 codes, depending on what is reported by the JDBC driver.

      It is strongly recommended that every Dialect implementation override this method, since interpretation of a SQL error is much more accurate when based on the vendor-specific error code, rather than on the SQLState.

      Overrides:
      buildSQLExceptionConversionDelegate in class Dialect
      Returns:
      The SQLExceptionConversionDelegate for this dialect
    • getWriteRowLockStrategy

      public RowLockStrategy getWriteRowLockStrategy()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The row lock strategy to use for write locks.
      Overrides:
      getWriteRowLockStrategy in class Dialect
    • getCreateTableString

      public String getCreateTableString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The command used to create a table, usually create table.
      Overrides:
      getCreateTableString in class Dialect
      Returns:
      The command used to create a table.
    • getAddColumnString

      public String getAddColumnString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The subcommand of the alter table command used to add a column to a table, usually add column or add.
      Overrides:
      getAddColumnString in class Dialect
      Returns:
      The add column fragment.
    • getAddColumnSuffixString

      public String getAddColumnSuffixString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The syntax for the suffix used to add a column to a table.
      Overrides:
      getAddColumnSuffixString in class Dialect
      Returns:
      The suffix of the add column fragment.
    • getCascadeConstraintsString

      public String getCascadeConstraintsString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The keyword that specifies that a drop table operation should be cascaded to its constraints, typically " cascade" where the leading space is required, or the empty string if there is no such keyword in this dialect.
      Overrides:
      getCascadeConstraintsString in class Dialect
      Returns:
      The cascade drop keyword, if any, with a leading space
    • getCurrentTimestampSelectString

      public String getCurrentTimestampSelectString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The command used to retrieve the current timestamp from the database.
      Overrides:
      getCurrentTimestampSelectString in class Dialect
    • getForUpdateString

      public String getForUpdateString(String aliases)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the FOR UPDATE OF column_list fragment appropriate for this dialect, given the aliases of the columns to be write locked.
      Overrides:
      getForUpdateString in class Dialect
      Parameters:
      aliases - The columns to be write locked.
      Returns:
      The appropriate FOR UPDATE OF column_list clause string.
    • getForUpdateString

      public String getForUpdateString(String aliases, LockOptions lockOptions)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the FOR UPDATE OF or FOR SHARE OF fragment appropriate for this dialect, given the aliases of the columns to be locked.
      Overrides:
      getForUpdateString in class Dialect
      Parameters:
      aliases - The columns to be locked.
      lockOptions - the lock options to apply
      Returns:
      The appropriate FOR UPDATE OF column_list clause string.
    • getForUpdateNowaitString

      public String getForUpdateNowaitString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Retrieves the FOR UPDATE NOWAIT syntax specific to this dialect.
      Overrides:
      getForUpdateNowaitString in class Dialect
      Returns:
      The appropriate FOR UPDATE NOWAIT clause string.
    • getQuerySequencesString

      public String getQuerySequencesString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the select command used retrieve the names of all sequences.
      Overrides:
      getQuerySequencesString in class Dialect
      Returns:
      The select command; or null if sequences are not supported.
    • getSequenceInformationExtractor

      public SequenceInformationExtractor getSequenceInformationExtractor()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      A SequenceInformationExtractor which is able to extract SequenceInformation from the JDBC result set returned when Dialect.getQuerySequencesString() is executed.
      Overrides:
      getSequenceInformationExtractor in class Dialect
    • isCurrentTimestampSelectStringCallable

      public boolean isCurrentTimestampSelectStringCallable()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Is the command returned by Dialect.getCurrentTimestampSelectString() treated as callable?

      Typically, this indicates the use of the JDBC escape syntax.

      Overrides:
      isCurrentTimestampSelectStringCallable in class Dialect
      Returns:
      if the Dialect.getCurrentTimestampSelectString() is treated as callable; false otherwise.
    • registerDefaultKeywords

      protected void registerDefaultKeywords()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Register the reserved words of ANSI-standard SQL as keywords.
      Overrides:
      registerDefaultKeywords in class Dialect
      See Also:
    • defaultScrollMode

      public ScrollMode defaultScrollMode()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      A default ScrollMode to be used by Query.scroll().
      Overrides:
      defaultScrollMode in class Dialect
      Returns:
      the default ScrollMode to use.
    • supportsColumnCheck

      public boolean supportsColumnCheck()
      Deprecated, for removal: This API element is subject to removal in a future version.
      HANA currently does not support check constraints.
      Overrides:
      supportsColumnCheck in class Dialect
      Returns:
      True if column-level check constraints are supported; false otherwise.
    • supportsCurrentTimestampSelection

      public boolean supportsCurrentTimestampSelection()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support some way to retrieve the current timestamp value from the database?
      Overrides:
      supportsCurrentTimestampSelection in class Dialect
      Returns:
      True if the current timestamp can be retrieved; false otherwise.
    • doesRoundTemporalOnOverflow

      public boolean doesRoundTemporalOnOverflow()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect round a temporal when converting from a precision higher to a lower one?
      Overrides:
      doesRoundTemporalOnOverflow in class Dialect
      Returns:
      true if rounding is applied, false if truncation is applied
    • supportsExistsInSelect

      public boolean supportsExistsInSelect()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does the dialect support an exists statement in the select clause?
      Overrides:
      supportsExistsInSelect in class Dialect
      Returns:
      True if exists checks are allowed in the select clause; false otherwise.
    • supportsExpectedLobUsagePattern

      public boolean supportsExpectedLobUsagePattern()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      "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.
      Overrides:
      supportsExpectedLobUsagePattern in class Dialect
      Returns:
      True if normal LOB usage patterns can be used with this driver; false if driver-specific hookiness needs to be applied.
    • supportsUnboundedLobLocatorMaterialization

      public boolean supportsUnboundedLobLocatorMaterialization()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Is it supported to materialize a LOB locator outside the transaction in which it was created?
      Overrides:
      supportsUnboundedLobLocatorMaterialization in class Dialect
      Returns:
      True if unbounded materialization is supported; false otherwise.
    • getSequenceSupport

      public SequenceSupport getSequenceSupport()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the appropriate SequenceSupport for this dialect.
      Overrides:
      getSequenceSupport in class Dialect
    • supportsTableCheck

      public boolean supportsTableCheck()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support table-level check constraints?
      Overrides:
      supportsTableCheck in class Dialect
      Returns:
      True if table-level check constraints are supported; false otherwise.
    • supportsTupleDistinctCounts

      public boolean supportsTupleDistinctCounts()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support count(distinct a,b)?
      Overrides:
      supportsTupleDistinctCounts in class Dialect
      Returns:
      True if the database supports counting distinct tuples; false otherwise.
    • dropConstraints

      public boolean dropConstraints()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Do we need to drop constraints before dropping tables in this dialect?
      Overrides:
      dropConstraints in class Dialect
      Returns:
      True if constraints must be dropped prior to dropping the table; false otherwise.
    • getMaxAliasLength

      public int getMaxAliasLength()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      What is the maximum length Hibernate can use for generated aliases?
      Overrides:
      getMaxAliasLength in class Dialect
      Returns:
      The maximum length.
    • getMaxIdentifierLength

      public int getMaxIdentifierLength()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      What is the maximum identifier length supported by this dialect?
      Overrides:
      getMaxIdentifierLength in class Dialect
      Returns:
      The maximum length.
    • getLimitHandler

      public LimitHandler getLimitHandler()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Obtain a LimitHandler that implements pagination support for Query.setMaxResults(int) and Query.setFirstResult(int).
      Overrides:
      getLimitHandler in class Dialect
    • getSelectGUIDString

      public String getSelectGUIDString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the command used to select a GUID from the database.

      Optional operation.

      Overrides:
      getSelectGUIDString in class Dialect
      Returns:
      The appropriate command.
    • getNameQualifierSupport

      public NameQualifierSupport getNameQualifierSupport()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The support for qualified identifiers.

      By default, decide based on DatabaseMetaData.

      Overrides:
      getNameQualifierSupport in class Dialect
      Returns:
      The NameQualifierSupport, or null to use DatabaseMetaData.
    • buildIdentifierHelper

      public IdentifierHelper buildIdentifierHelper(IdentifierHelperBuilder builder, DatabaseMetaData dbMetaData) throws SQLException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The IdentifierHelper indicated by this dialect for handling identifier conversions. Returning null is allowed and indicates that Hibernate should fall back to building a "standard" helper. In the fallback path, any changes made to the IdentifierHelperBuilder during this call will still be incorporated into the built IdentifierHelper.

      The incoming builder will have the following set:

      By default, Hibernate will do the following:

      Overrides:
      buildIdentifierHelper in class Dialect
      Parameters:
      builder - A partially-configured IdentifierHelperBuilder.
      dbMetaData - Access to the metadata returned from the driver if needed and if available. WARNING: it may be null.
      Returns:
      The IdentifierHelper instance to use, or null to indicate Hibernate should use its fallback path
      Throws:
      SQLException - Accessing the DatabaseMetaData can throw it. Just rethrow and Hibernate will handle it.
      See Also:
    • getCurrentSchemaCommand

      public String getCurrentSchemaCommand()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the SQL command used to retrieve the current schema name.

      Works in conjunction with Dialect.getSchemaNameResolver(), unless the resulting SchemaNameResolver does not need this information. For example, a custom implementation might make use of the Java 1.7 Connection.getSchema() method.

      Overrides:
      getCurrentSchemaCommand in class Dialect
      Returns:
      The current schema retrieval SQL
    • getForUpdateNowaitString

      public String getForUpdateNowaitString(String aliases)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the FOR UPDATE OF column_list NOWAIT fragment appropriate for this dialect, given the aliases of the columns to be write locked.
      Overrides:
      getForUpdateNowaitString in class Dialect
      Parameters:
      aliases - The columns to be write locked.
      Returns:
      The appropriate FOR UPDATE OF colunm_list NOWAIT clause string.
    • getReadLockString

      public String getReadLockString(int timeout)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the string to append to SELECT statements to acquire READ locks for this dialect.

      Location of the returned string is treated the same as Dialect.getForUpdateString().

      Overrides:
      getReadLockString in class Dialect
      Parameters:
      timeout - in milliseconds, -1 for indefinite wait and 0 for no wait.
      Returns:
      The appropriate LOCK clause string.
    • getReadLockString

      public String getReadLockString(String aliases, int timeout)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the string to append to SELECT statements to acquire READ locks for this dialect, given the aliases of the columns to be read locked.

      Location of the returned string is treated the same as Dialect.getForUpdateString().

      Overrides:
      getReadLockString in class Dialect
      Parameters:
      aliases - The columns to be read locked.
      timeout - in milliseconds, -1 for indefinite wait and 0 for no wait.
      Returns:
      The appropriate LOCK clause string.
    • getWriteLockString

      public String getWriteLockString(int timeout)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the string to append to SELECT statements to acquire pessimistic WRITE locks for this dialect.

      Location of the returned string is treated the same as Dialect.getForUpdateString().

      Overrides:
      getWriteLockString in class Dialect
      Parameters:
      timeout - in milliseconds, -1 for indefinite wait and 0 for no wait.
      Returns:
      The appropriate LOCK clause string.
    • getWriteLockString

      public String getWriteLockString(String aliases, int timeout)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the string to append to SELECT statements to acquire WRITE locks for this dialect, given the aliases of the columns to be write locked.

      Location of the returned string is treated the same as Dialect.getForUpdateString().

      Overrides:
      getWriteLockString in class Dialect
      Parameters:
      aliases - The columns to be read locked.
      timeout - in milliseconds, -1 for indefinite wait and 0 for no wait.
      Returns:
      The appropriate LOCK clause string.
    • getQueryHintString

      public String getQueryHintString(String query, List<String> hints)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Apply a hint to the given SQL query.

      The entire query is provided, allowing full control over the placement and syntax of the hint.

      By default, ignore the hint and simply return the query.

      Overrides:
      getQueryHintString in class Dialect
      Parameters:
      query - The query to which to apply the hint.
      hints - The hints to apply
      Returns:
      The modified SQL
    • getTableComment

      public String getTableComment(String comment)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the comment into a form supported for table definition.
      Overrides:
      getTableComment in class Dialect
      Parameters:
      comment - The comment to apply
      Returns:
      The comment fragment
    • getColumnComment

      public String getColumnComment(String comment)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the comment into a form supported for column definition.
      Overrides:
      getColumnComment in class Dialect
      Parameters:
      comment - The comment to apply
      Returns:
      The comment fragment
    • supportsCommentOn

      public boolean supportsCommentOn()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support commenting on tables and columns?
      Overrides:
      supportsCommentOn in class Dialect
      Returns:
      true if commenting is supported
    • supportsPartitionBy

      public boolean supportsPartitionBy()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does is dialect support partition by?
      Overrides:
      supportsPartitionBy in class Dialect
    • contributeTypes

      public void contributeTypes(TypeContributions typeContributions, ServiceRegistry serviceRegistry)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      A callback which allows the Dialect to contribute types.
      Overrides:
      contributeTypes in class Dialect
      Parameters:
      typeContributions - Callback to contribute the types
      serviceRegistry - The service registry
    • appendBooleanValueString

      public void appendBooleanValueString(SqlAppender appender, boolean bool)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Append the SQL literal expression representing the given boolean value to the given SqlAppender.
      Overrides:
      appendBooleanValueString in class Dialect
      Parameters:
      appender - The SqlAppender to append the literal expression to
      bool - The boolean value
    • getIdentityColumnSupport

      public IdentityColumnSupport getIdentityColumnSupport()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the appropriate IdentityColumnSupport for this dialect.
      Overrides:
      getIdentityColumnSupport in class Dialect
      Returns:
      the IdentityColumnSupport
    • getTableExporter

      public Exporter<Table> getTableExporter()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get an Exporter for Tables, usually StandardTableExporter.
      Overrides:
      getTableExporter in class Dialect
    • getCallableStatementSupport

      public CallableStatementSupport getCallableStatementSupport()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The CallableStatementSupport for this database. Does this database support returning cursors?
      Overrides:
      getCallableStatementSupport in class Dialect
    • registerResultSetOutParameter

      public int registerResultSetOutParameter(CallableStatement statement, int position) throws SQLException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Registers a parameter capable of returning a ResultSet by position, either an OUT parameter, or a REF_CURSOR parameter as defined in Java 8.
      Overrides:
      registerResultSetOutParameter in class Dialect
      Parameters:
      statement - The callable statement.
      position - The bind position at which to register the output param.
      Returns:
      The number of (contiguous) bind positions used.
      Throws:
      SQLException - Indicates problems registering the param.
    • registerResultSetOutParameter

      public int registerResultSetOutParameter(CallableStatement statement, String name) throws SQLException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Registers a parameter capable of returning a ResultSet by name, either an OUT parameter, or a REF_CURSOR parameter as defined in Java 8.
      Overrides:
      registerResultSetOutParameter in class Dialect
      Parameters:
      statement - The callable statement.
      name - The parameter name (for drivers which support named parameters).
      Returns:
      The number of (contiguous) bind positions used.
      Throws:
      SQLException - Indicates problems registering the param.
    • supportsOffsetInSubquery

      public boolean supportsOffsetInSubquery()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support offset in subqueries?

      For example:

       select * from Table1 where col1 in (select col1 from Table2 order by col2 limit 1 offset 1)
       
      Overrides:
      supportsOffsetInSubquery in class Dialect
      Returns:
      true if it does
    • supportsWindowFunctions

      public boolean supportsWindowFunctions()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support window functions like row_number() over (..)?
      Overrides:
      supportsWindowFunctions in class Dialect
      Returns:
      true if the underlying database supports window functions, false otherwise. The default is false.
    • supportsLateral

      public boolean supportsLateral()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support the SQL lateral keyword or a proprietary alternative?
      Overrides:
      supportsLateral in class Dialect
      Returns:
      true if the underlying database supports lateral, false otherwise. The default is false.
    • supportsNoWait

      public boolean supportsNoWait()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support NO_WAIT timeout.
      Overrides:
      supportsNoWait in class Dialect
      Returns:
      true if NO_WAIT is supported
    • supportsJdbcConnectionLobCreation

      public boolean supportsJdbcConnectionLobCreation(DatabaseMetaData databaseMetaData)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Check whether the JDBC Connection supports creating LOBs via Connection.createBlob(), Connection.createNClob(), or Connection.createClob().
      Overrides:
      supportsJdbcConnectionLobCreation in class Dialect
      Parameters:
      databaseMetaData - JDBC DatabaseMetaData which can be used if LOB creation is supported only starting from a given driver version
      Returns:
      true if LOBs can be created via the JDBC Connection.
    • supportsNoColumnsInsert

      public boolean supportsNoColumnsInsert()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Is the INSERT statement is allowed to contain no columns?
      Overrides:
      supportsNoColumnsInsert in class Dialect
      Returns:
      if this dialect supports no-column INSERT.
    • supportsOrderByInSubquery

      public boolean supportsOrderByInSubquery()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support the order by clause in subqueries?

      For example:

       select * from Table1 where col1 in (select col1 from Table2 order by col2 limit 1)
       
      Overrides:
      supportsOrderByInSubquery in class Dialect
      Returns:
      true if it does
    • getNullOrdering

      public NullOrdering getNullOrdering()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Returns the default ordering of null.
      Overrides:
      getNullOrdering in class Dialect
    • appendDatetimeFormat

      public void appendDatetimeFormat(SqlAppender appender, String format)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Translate the given datetime format string from the pattern language defined by Java's DateTimeFormatter to whatever pattern language is understood by the native datetime formatting function for this database (often the to_char() function).

      Since it's never possible to translate every pattern letter sequences understood by DateTimeFormatter, only the following subset of pattern letters is accepted by Hibernate:

      • G: era
      • y: year of era
      • Y: year of week-based year
      • M: month of year
      • w: week of week-based year (ISO week number)
      • W: week of month
      • E: day of week (name)
      • e: day of week (number)
      • d: day of month
      • D: day of year
      • a: AM/PM
      • H: hour of day (24 hour time)
      • h: hour of AM/PM (12 hour time)
      • m: minutes
      • s: seconds
      • z,Z,x: timezone offset

      In addition, punctuation characters and single-quoted literal strings are accepted.

      Appends a pattern accepted by the function that formats dates and times in this dialect to a SQL fragment that is being constructed.

      Overrides:
      appendDatetimeFormat in class Dialect
    • supportsFractionalTimestampArithmetic

      public boolean supportsFractionalTimestampArithmetic()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Whether the database supports adding a fractional interval to a timestamp, for example timestamp + 0.5 second.
      Overrides:
      supportsFractionalTimestampArithmetic in class Dialect
    • getFractionalSecondPrecisionInNanos

      public long getFractionalSecondPrecisionInNanos()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The "native" precision for arithmetic with datetimes and day-to-second durations. Datetime differences will be calculated with this precision except when a precision is explicitly specified as a TemporalUnit.

      Usually 1 (nanoseconds), 1_000 (microseconds), or 1_000_000 (milliseconds).

      Overrides:
      getFractionalSecondPrecisionInNanos in class Dialect
      Returns:
      the precision, specified as a quantity of nanoseconds
      See Also:
    • timestampaddPattern

      public String timestampaddPattern(TemporalUnit unit, TemporalType temporalType, IntervalType intervalType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Obtain a pattern for the SQL equivalent to a timestampadd() function call. The resulting pattern must contain ?1, ?2, and ?3 placeholders for the arguments.
      Overrides:
      timestampaddPattern in class Dialect
      Parameters:
      unit - The unit to add to the temporal
      temporalType - The type of the temporal
      intervalType - The type of interval to add or null if it's not a native interval
    • timestampdiffPattern

      public String timestampdiffPattern(TemporalUnit unit, TemporalType fromTemporalType, TemporalType toTemporalType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Obtain a pattern for the SQL equivalent to a timestampdiff() function call. The resulting pattern must contain ?1, ?2, and ?3 placeholders for the arguments.
      Overrides:
      timestampdiffPattern in class Dialect
      Parameters:
      unit - the first argument
      fromTemporalType - true if the first argument is a timestamp, false if a date
      toTemporalType - true if the second argument is
    • appendDateTimeLiteral

      public void appendDateTimeLiteral(SqlAppender appender, TemporalAccessor temporalAccessor, TemporalType precision, TimeZone jdbcTimeZone)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Append a datetime literal representing the given java.time value to the given SqlAppender.
      Overrides:
      appendDateTimeLiteral in class Dialect
    • appendDateTimeLiteral

      public void appendDateTimeLiteral(SqlAppender appender, Date date, TemporalType precision, TimeZone jdbcTimeZone)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Append a datetime literal representing the given Date value to the given SqlAppender.
      Overrides:
      appendDateTimeLiteral in class Dialect
    • generatedAs

      public String generatedAs(String generatedAs)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The generated as clause, or similar, for generated column declarations in DDL statements.
      Overrides:
      generatedAs in class Dialect
      Parameters:
      generatedAs - a SQL expression used to generate the column value
      Returns:
      The generated as clause containing the given expression
    • isUseUnicodeStringTypes

      public boolean isUseUnicodeStringTypes()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • supportsAsciiStringTypes

      protected boolean supportsAsciiStringTypes()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • useUnicodeStringTypesDefault

      protected Boolean useUnicodeStringTypesDefault()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • getFallbackSqmMutationStrategy

      public SqmMultiTableMutationStrategy getFallbackSqmMutationStrategy(EntityMappingType entityDescriptor, RuntimeModelCreationContext runtimeModelCreationContext)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Overrides:
      getFallbackSqmMutationStrategy in class Dialect
      See Also:
    • getFallbackSqmInsertStrategy

      public SqmMultiTableInsertStrategy getFallbackSqmInsertStrategy(EntityMappingType entityDescriptor, RuntimeModelCreationContext runtimeModelCreationContext)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Overrides:
      getFallbackSqmInsertStrategy in class Dialect
      See Also:
    • getSupportedTemporaryTableKind

      public TemporaryTableKind getSupportedTemporaryTableKind()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The kind of temporary tables that are supported on this database.
      Overrides:
      getSupportedTemporaryTableKind in class Dialect
    • getTemporaryTableCreateOptions

      public String getTemporaryTableCreateOptions()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      An arbitrary SQL fragment appended to the end of the statement to create a temporary table, specifying dialect-specific options, or null if there are no options to specify.
      Overrides:
      getTemporaryTableCreateOptions in class Dialect
    • getTemporaryTableCreateCommand

      public String getTemporaryTableCreateCommand()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The command to create a temporary table.
      Overrides:
      getTemporaryTableCreateCommand in class Dialect
    • getTemporaryTableTruncateCommand

      public String getTemporaryTableTruncateCommand()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      The command to truncate a temporary table.
      Overrides:
      getTemporaryTableTruncateCommand in class Dialect
    • getDmlTargetColumnQualifierSupport

      public DmlTargetColumnQualifierSupport getDmlTargetColumnQualifierSupport()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the minimum DmlTargetColumnQualifierSupport required by this dialect.
      Overrides:
      getDmlTargetColumnQualifierSupport in class Dialect
      Returns:
      the column qualifier support required by this dialect
    • supportsSkipLocked

      public boolean supportsSkipLocked()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Does this dialect support SKIP_LOCKED timeout.
      Overrides:
      supportsSkipLocked in class Dialect
      Returns:
      true if SKIP_LOCKED is supported
    • getForUpdateSkipLockedString

      public String getForUpdateSkipLockedString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Retrieves the FOR UPDATE SKIP LOCKED syntax specific to this dialect.
      Overrides:
      getForUpdateSkipLockedString in class Dialect
      Returns:
      The appropriate FOR UPDATE SKIP LOCKED clause string.
    • getForUpdateSkipLockedString

      public String getForUpdateSkipLockedString(String aliases)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Get the FOR UPDATE OF column_list SKIP LOCKED fragment appropriate for this dialect, given the aliases of the columns to be write locked.
      Overrides:
      getForUpdateSkipLockedString in class Dialect
      Parameters:
      aliases - The columns to be write locked.
      Returns:
      The appropriate FOR UPDATE colunm_list SKIP LOCKED clause string.
    • getForUpdateString

      public String getForUpdateString(LockMode lockMode)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: Dialect
      Given a LockMode, determine the appropriate for update fragment to use to obtain the lock.
      Overrides:
      getForUpdateString in class Dialect
      Parameters:
      lockMode - The lock mode to apply.
      Returns:
      The appropriate for update fragment.