Class MySQLLegacyDialect

java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.community.dialect.MySQLLegacyDialect
All Implemented Interfaces:
org.hibernate.boot.model.FunctionContributor, org.hibernate.boot.model.TypeContributor, org.hibernate.exception.spi.ConversionContext
Direct Known Subclasses:
MariaDBLegacyDialect

public class MySQLLegacyDialect extends org.hibernate.dialect.Dialect
A SQL dialect for MySQL 5 and above.
  • Constructor Details

    • MySQLLegacyDialect

      public MySQLLegacyDialect()
    • MySQLLegacyDialect

      public MySQLLegacyDialect(org.hibernate.dialect.DatabaseVersion version)
    • MySQLLegacyDialect

      public MySQLLegacyDialect(org.hibernate.dialect.DatabaseVersion version, int bytesPerCharacter)
    • MySQLLegacyDialect

      public MySQLLegacyDialect(org.hibernate.dialect.DatabaseVersion version, org.hibernate.dialect.MySQLServerConfiguration serverConfiguration)
    • MySQLLegacyDialect

      public MySQLLegacyDialect(org.hibernate.dialect.DatabaseVersion version, int bytesPerCharacter, boolean noBackslashEscapes)
    • MySQLLegacyDialect

      public MySQLLegacyDialect(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)
  • Method Details

    • createVersion

      protected static org.hibernate.dialect.DatabaseVersion createVersion(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)
    • initDefaultProperties

      protected void initDefaultProperties()
      Overrides:
      initDefaultProperties in class org.hibernate.dialect.Dialect
    • columnType

      protected String columnType(int sqlTypeCode)
      Overrides:
      columnType in class org.hibernate.dialect.Dialect
    • useMaterializedLobWhenCapacityExceeded

      public boolean useMaterializedLobWhenCapacityExceeded()
      Overrides:
      useMaterializedLobWhenCapacityExceeded in class org.hibernate.dialect.Dialect
    • castType

      protected String castType(int sqlTypeCode)
      Overrides:
      castType in class org.hibernate.dialect.Dialect
    • registerColumnTypes

      protected void registerColumnTypes(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)
      Overrides:
      registerColumnTypes in class org.hibernate.dialect.Dialect
    • getCharacterSetBytesPerCharacter

      @Deprecated protected static int getCharacterSetBytesPerCharacter(DatabaseMetaData databaseMetaData)
      Deprecated.
    • getMaxVarcharLength

      public int getMaxVarcharLength()
      Overrides:
      getMaxVarcharLength in class org.hibernate.dialect.Dialect
    • getMaxVarbinaryLength

      public int getMaxVarbinaryLength()
      Overrides:
      getMaxVarbinaryLength in class org.hibernate.dialect.Dialect
    • isNoBackslashEscapesEnabled

      public boolean isNoBackslashEscapesEnabled()
    • getNullColumnString

      public String getNullColumnString(String columnType)
      Overrides:
      getNullColumnString in class org.hibernate.dialect.Dialect
    • getMySQLVersion

      public org.hibernate.dialect.DatabaseVersion getMySQLVersion()
    • getSizeStrategy

      public org.hibernate.dialect.Dialect.SizeStrategy getSizeStrategy()
      Overrides:
      getSizeStrategy in class org.hibernate.dialect.Dialect
    • getDefaultLobLength

      public long getDefaultLobLength()
      Overrides:
      getDefaultLobLength in class org.hibernate.dialect.Dialect
    • resolveSqlTypeDescriptor

      public org.hibernate.type.descriptor.jdbc.JdbcType resolveSqlTypeDescriptor(String columnTypeName, int jdbcTypeCode, int precision, int scale, org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry jdbcTypeRegistry)
      Overrides:
      resolveSqlTypeDescriptor in class org.hibernate.dialect.Dialect
    • resolveSqlTypeLength

      public int resolveSqlTypeLength(String columnTypeName, int jdbcTypeCode, int precision, int scale, int displaySize)
      Overrides:
      resolveSqlTypeLength in class org.hibernate.dialect.Dialect
    • getPreferredSqlTypeCodeForBoolean

      public int getPreferredSqlTypeCodeForBoolean()
      Overrides:
      getPreferredSqlTypeCodeForBoolean in class org.hibernate.dialect.Dialect
    • initializeFunctionRegistry

      public void initializeFunctionRegistry(org.hibernate.boot.model.FunctionContributions functionContributions)
      Overrides:
      initializeFunctionRegistry in class org.hibernate.dialect.Dialect
    • contributeTypes

      public void contributeTypes(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)
      Overrides:
      contributeTypes in class org.hibernate.dialect.Dialect
    • getSqlAstTranslatorFactory

      public org.hibernate.sql.ast.SqlAstTranslatorFactory getSqlAstTranslatorFactory()
      Overrides:
      getSqlAstTranslatorFactory in class org.hibernate.dialect.Dialect
    • castPattern

      public String castPattern(org.hibernate.query.sqm.CastType from, org.hibernate.query.sqm.CastType to)
      Overrides:
      castPattern in class org.hibernate.dialect.Dialect
    • getFloatPrecision

      public int getFloatPrecision()
      Overrides:
      getFloatPrecision in class org.hibernate.dialect.Dialect
    • currentTimestamp

      public String currentTimestamp()
      MySQL 5.7 precision defaults to seconds, but microseconds is better
      Overrides:
      currentTimestamp in class org.hibernate.dialect.Dialect
    • getFractionalSecondPrecisionInNanos

      public long getFractionalSecondPrecisionInNanos()
      microsecond is the smallest unit for timestampadd() and timestampdiff(), and the highest precision for a timestamp.
      Overrides:
      getFractionalSecondPrecisionInNanos in class org.hibernate.dialect.Dialect
    • extractPattern

      public String extractPattern(org.hibernate.query.sqm.TemporalUnit unit)
      MySQL supports a limited list of temporal fields in the extract() function, but we can emulate some of them by using the appropriate named functions instead of extract(). Thus, the additional supported fields are TemporalUnit.DAY_OF_YEAR, TemporalUnit.DAY_OF_MONTH, TemporalUnit.DAY_OF_YEAR. In addition, the field TemporalUnit.SECOND is redefined to include microseconds.
      Overrides:
      extractPattern in class org.hibernate.dialect.Dialect
    • timestampaddPattern

      public String timestampaddPattern(org.hibernate.query.sqm.TemporalUnit unit, TemporalType temporalType, org.hibernate.query.sqm.IntervalType intervalType)
      Overrides:
      timestampaddPattern in class org.hibernate.dialect.Dialect
    • timestampdiffPattern

      public String timestampdiffPattern(org.hibernate.query.sqm.TemporalUnit unit, TemporalType fromTemporalType, TemporalType toTemporalType)
      Overrides:
      timestampdiffPattern in class org.hibernate.dialect.Dialect
    • supportsUnionAll

      public boolean supportsUnionAll()
      Overrides:
      supportsUnionAll in class org.hibernate.dialect.Dialect
    • getGroupBySelectItemReferenceStrategy

      public org.hibernate.dialect.SelectItemReferenceStrategy getGroupBySelectItemReferenceStrategy()
      Overrides:
      getGroupBySelectItemReferenceStrategy in class org.hibernate.dialect.Dialect
    • supportsColumnCheck

      public boolean supportsColumnCheck()
      Overrides:
      supportsColumnCheck in class org.hibernate.dialect.Dialect
    • getEnumTypeDeclaration

      public String getEnumTypeDeclaration(String name, String[] values)
      Overrides:
      getEnumTypeDeclaration in class org.hibernate.dialect.Dialect
    • getQueryHintString

      public String getQueryHintString(String query, String hints)
      Overrides:
      getQueryHintString in class org.hibernate.dialect.Dialect
    • getSequenceSupport

      public org.hibernate.dialect.sequence.SequenceSupport getSequenceSupport()
      No support for sequences.
      Overrides:
      getSequenceSupport in class org.hibernate.dialect.Dialect
    • getViolatedConstraintNameExtractor

      public org.hibernate.exception.spi.ViolatedConstraintNameExtractor getViolatedConstraintNameExtractor()
      Specified by:
      getViolatedConstraintNameExtractor in interface org.hibernate.exception.spi.ConversionContext
      Overrides:
      getViolatedConstraintNameExtractor in class org.hibernate.dialect.Dialect
    • qualifyIndexName

      public boolean qualifyIndexName()
      Overrides:
      qualifyIndexName in class org.hibernate.dialect.Dialect
    • getAddForeignKeyConstraintString

      public String getAddForeignKeyConstraintString(String constraintName, String[] foreignKey, String referencedTable, String[] primaryKey, boolean referencesPrimaryKey)
      Overrides:
      getAddForeignKeyConstraintString in class org.hibernate.dialect.Dialect
    • getDropForeignKeyString

      public String getDropForeignKeyString()
      Overrides:
      getDropForeignKeyString in class org.hibernate.dialect.Dialect
    • getDropUniqueKeyString

      public String getDropUniqueKeyString()
      Overrides:
      getDropUniqueKeyString in class org.hibernate.dialect.Dialect
    • getLimitHandler

      public org.hibernate.dialect.pagination.LimitHandler getLimitHandler()
      Overrides:
      getLimitHandler in class org.hibernate.dialect.Dialect
    • closeQuote

      public char closeQuote()
      Overrides:
      closeQuote in class org.hibernate.dialect.Dialect
    • openQuote

      public char openQuote()
      Overrides:
      openQuote in class org.hibernate.dialect.Dialect
    • canCreateCatalog

      public boolean canCreateCatalog()
      Overrides:
      canCreateCatalog in class org.hibernate.dialect.Dialect
    • getCreateCatalogCommand

      public String[] getCreateCatalogCommand(String catalogName)
      Overrides:
      getCreateCatalogCommand in class org.hibernate.dialect.Dialect
    • getDropCatalogCommand

      public String[] getDropCatalogCommand(String catalogName)
      Overrides:
      getDropCatalogCommand in class org.hibernate.dialect.Dialect
    • canCreateSchema

      public boolean canCreateSchema()
      Overrides:
      canCreateSchema in class org.hibernate.dialect.Dialect
    • getCreateSchemaCommand

      public String[] getCreateSchemaCommand(String schemaName)
      Overrides:
      getCreateSchemaCommand in class org.hibernate.dialect.Dialect
    • getDropSchemaCommand

      public String[] getDropSchemaCommand(String schemaName)
      Overrides:
      getDropSchemaCommand in class org.hibernate.dialect.Dialect
    • supportsIfExistsBeforeTableName

      public boolean supportsIfExistsBeforeTableName()
      Overrides:
      supportsIfExistsBeforeTableName in class org.hibernate.dialect.Dialect
    • getSelectGUIDString

      public String getSelectGUIDString()
      Overrides:
      getSelectGUIDString in class org.hibernate.dialect.Dialect
    • supportsCommentOn

      public boolean supportsCommentOn()
      Overrides:
      supportsCommentOn in class org.hibernate.dialect.Dialect
    • getTableComment

      public String getTableComment(String comment)
      Overrides:
      getTableComment in class org.hibernate.dialect.Dialect
    • getColumnComment

      public String getColumnComment(String comment)
      Overrides:
      getColumnComment in class org.hibernate.dialect.Dialect
    • getNullOrdering

      public org.hibernate.dialect.NullOrdering getNullOrdering()
      Overrides:
      getNullOrdering in class org.hibernate.dialect.Dialect
    • getFallbackSqmMutationStrategy

      public org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy getFallbackSqmMutationStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)
      Overrides:
      getFallbackSqmMutationStrategy in class org.hibernate.dialect.Dialect
    • getFallbackSqmInsertStrategy

      public org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy getFallbackSqmInsertStrategy(org.hibernate.metamodel.mapping.EntityMappingType rootEntityDescriptor, org.hibernate.metamodel.spi.RuntimeModelCreationContext runtimeModelCreationContext)
      Overrides:
      getFallbackSqmInsertStrategy in class org.hibernate.dialect.Dialect
    • getSupportedTemporaryTableKind

      public org.hibernate.dialect.temptable.TemporaryTableKind getSupportedTemporaryTableKind()
      Overrides:
      getSupportedTemporaryTableKind in class org.hibernate.dialect.Dialect
    • getTemporaryTableCreateCommand

      public String getTemporaryTableCreateCommand()
      Overrides:
      getTemporaryTableCreateCommand in class org.hibernate.dialect.Dialect
    • getTemporaryTableDropCommand

      public String getTemporaryTableDropCommand()
      Overrides:
      getTemporaryTableDropCommand in class org.hibernate.dialect.Dialect
    • getTemporaryTableAfterUseAction

      public org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction getTemporaryTableAfterUseAction()
      Overrides:
      getTemporaryTableAfterUseAction in class org.hibernate.dialect.Dialect
    • getTemporaryTableBeforeUseAction

      public org.hibernate.query.sqm.mutation.internal.temptable.BeforeUseAction getTemporaryTableBeforeUseAction()
      Overrides:
      getTemporaryTableBeforeUseAction in class org.hibernate.dialect.Dialect
    • getMaxAliasLength

      public int getMaxAliasLength()
      Overrides:
      getMaxAliasLength in class org.hibernate.dialect.Dialect
    • getMaxIdentifierLength

      public int getMaxIdentifierLength()
      Overrides:
      getMaxIdentifierLength in class org.hibernate.dialect.Dialect
    • supportsCurrentTimestampSelection

      public boolean supportsCurrentTimestampSelection()
      Overrides:
      supportsCurrentTimestampSelection in class org.hibernate.dialect.Dialect
    • isCurrentTimestampSelectStringCallable

      public boolean isCurrentTimestampSelectStringCallable()
      Overrides:
      isCurrentTimestampSelectStringCallable in class org.hibernate.dialect.Dialect
    • getCurrentTimestampSelectString

      public String getCurrentTimestampSelectString()
      Overrides:
      getCurrentTimestampSelectString in class org.hibernate.dialect.Dialect
    • registerResultSetOutParameter

      public int registerResultSetOutParameter(CallableStatement statement, int col) throws SQLException
      Overrides:
      registerResultSetOutParameter in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • getResultSet

      public ResultSet getResultSet(CallableStatement ps) throws SQLException
      Overrides:
      getResultSet in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • supportsNullPrecedence

      public boolean supportsNullPrecedence()
      Overrides:
      supportsNullPrecedence in class org.hibernate.dialect.Dialect
    • supportsLobValueChangePropagation

      public boolean supportsLobValueChangePropagation()
      Overrides:
      supportsLobValueChangePropagation in class org.hibernate.dialect.Dialect
    • supportsSubqueryOnMutatingTable

      public boolean supportsSubqueryOnMutatingTable()
      Overrides:
      supportsSubqueryOnMutatingTable in class org.hibernate.dialect.Dialect
    • supportsLockTimeouts

      public boolean supportsLockTimeouts()
      Overrides:
      supportsLockTimeouts in class org.hibernate.dialect.Dialect
    • buildSQLExceptionConversionDelegate

      public org.hibernate.exception.spi.SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate()
      Overrides:
      buildSQLExceptionConversionDelegate in class org.hibernate.dialect.Dialect
    • getNameQualifierSupport

      public org.hibernate.engine.jdbc.env.spi.NameQualifierSupport getNameQualifierSupport()
      Overrides:
      getNameQualifierSupport in class org.hibernate.dialect.Dialect
    • buildIdentifierHelper

      public org.hibernate.engine.jdbc.env.spi.IdentifierHelper buildIdentifierHelper(org.hibernate.engine.jdbc.env.spi.IdentifierHelperBuilder builder, DatabaseMetaData dbMetaData) throws SQLException
      Overrides:
      buildIdentifierHelper in class org.hibernate.dialect.Dialect
      Throws:
      SQLException
    • getIdentityColumnSupport

      public org.hibernate.dialect.identity.IdentityColumnSupport getIdentityColumnSupport()
      Overrides:
      getIdentityColumnSupport in class org.hibernate.dialect.Dialect
    • isJdbcLogWarningsEnabledByDefault

      public boolean isJdbcLogWarningsEnabledByDefault()
      Overrides:
      isJdbcLogWarningsEnabledByDefault in class org.hibernate.dialect.Dialect
    • supportsCascadeDelete

      public boolean supportsCascadeDelete()
      Overrides:
      supportsCascadeDelete in class org.hibernate.dialect.Dialect
    • getTableTypeString

      public String getTableTypeString()
      Overrides:
      getTableTypeString in class org.hibernate.dialect.Dialect
    • hasSelfReferentialForeignKeyBug

      public boolean hasSelfReferentialForeignKeyBug()
      Overrides:
      hasSelfReferentialForeignKeyBug in class org.hibernate.dialect.Dialect
    • dropConstraints

      public boolean dropConstraints()
      Overrides:
      dropConstraints in class org.hibernate.dialect.Dialect
    • getDefaultMySQLStorageEngine

      protected org.hibernate.dialect.MySQLStorageEngine getDefaultMySQLStorageEngine()
    • appendLiteral

      public void appendLiteral(org.hibernate.sql.ast.spi.SqlAppender appender, String literal)
      Overrides:
      appendLiteral in class org.hibernate.dialect.Dialect
    • appendDatetimeFormat

      public void appendDatetimeFormat(org.hibernate.sql.ast.spi.SqlAppender appender, String format)
      Overrides:
      appendDatetimeFormat in class org.hibernate.dialect.Dialect
    • datetimeFormat

      public static org.hibernate.dialect.Replacer datetimeFormat(String format)
    • getWriteLockString

      public String getWriteLockString(int timeout)
      Overrides:
      getWriteLockString in class org.hibernate.dialect.Dialect
    • getWriteLockString

      public String getWriteLockString(String aliases, int timeout)
      Overrides:
      getWriteLockString in class org.hibernate.dialect.Dialect
    • getReadLockString

      public String getReadLockString(int timeout)
      Overrides:
      getReadLockString in class org.hibernate.dialect.Dialect
    • getReadLockString

      public String getReadLockString(String aliases, int timeout)
      Overrides:
      getReadLockString in class org.hibernate.dialect.Dialect
    • getForUpdateSkipLockedString

      public String getForUpdateSkipLockedString()
      Overrides:
      getForUpdateSkipLockedString in class org.hibernate.dialect.Dialect
    • getForUpdateSkipLockedString

      public String getForUpdateSkipLockedString(String aliases)
      Overrides:
      getForUpdateSkipLockedString in class org.hibernate.dialect.Dialect
    • getForUpdateNowaitString

      public String getForUpdateNowaitString()
      Overrides:
      getForUpdateNowaitString in class org.hibernate.dialect.Dialect
    • getForUpdateNowaitString

      public String getForUpdateNowaitString(String aliases)
      Overrides:
      getForUpdateNowaitString in class org.hibernate.dialect.Dialect
    • getForUpdateString

      public String getForUpdateString(String aliases)
      Overrides:
      getForUpdateString in class org.hibernate.dialect.Dialect
    • supportsOffsetInSubquery

      public boolean supportsOffsetInSubquery()
      Overrides:
      supportsOffsetInSubquery in class org.hibernate.dialect.Dialect
    • supportsWindowFunctions

      public boolean supportsWindowFunctions()
      Overrides:
      supportsWindowFunctions in class org.hibernate.dialect.Dialect
    • supportsLateral

      public boolean supportsLateral()
      Overrides:
      supportsLateral in class org.hibernate.dialect.Dialect
    • supportsRecursiveCTE

      public boolean supportsRecursiveCTE()
      Overrides:
      supportsRecursiveCTE in class org.hibernate.dialect.Dialect
    • supportsSkipLocked

      public boolean supportsSkipLocked()
      Overrides:
      supportsSkipLocked in class org.hibernate.dialect.Dialect
    • supportsNoWait

      public boolean supportsNoWait()
      Overrides:
      supportsNoWait in class org.hibernate.dialect.Dialect
    • supportsWait

      public boolean supportsWait()
      Overrides:
      supportsWait in class org.hibernate.dialect.Dialect
    • getWriteRowLockStrategy

      public org.hibernate.dialect.RowLockStrategy getWriteRowLockStrategy()
      Overrides:
      getWriteRowLockStrategy in class org.hibernate.dialect.Dialect
    • registerDefaultKeywords

      protected void registerDefaultKeywords()
      Overrides:
      registerDefaultKeywords in class org.hibernate.dialect.Dialect
    • getFunctionalDependencyAnalysisSupport

      public org.hibernate.dialect.FunctionalDependencyAnalysisSupport getFunctionalDependencyAnalysisSupport()
      Overrides:
      getFunctionalDependencyAnalysisSupport in class org.hibernate.dialect.Dialect
    • canDisableConstraints

      public boolean canDisableConstraints()
      Overrides:
      canDisableConstraints in class org.hibernate.dialect.Dialect
    • getDisableConstraintsStatement

      public String getDisableConstraintsStatement()
      Overrides:
      getDisableConstraintsStatement in class org.hibernate.dialect.Dialect
    • getEnableConstraintsStatement

      public String getEnableConstraintsStatement()
      Overrides:
      getEnableConstraintsStatement in class org.hibernate.dialect.Dialect
    • getDmlTargetColumnQualifierSupport

      public org.hibernate.dialect.DmlTargetColumnQualifierSupport getDmlTargetColumnQualifierSupport()
      Overrides:
      getDmlTargetColumnQualifierSupport in class org.hibernate.dialect.Dialect
    • supportsFromClauseInUpdate

      public boolean supportsFromClauseInUpdate()
      Overrides:
      supportsFromClauseInUpdate in class org.hibernate.dialect.Dialect
    • appendCheckConstraintOptions

      public String appendCheckConstraintOptions(org.hibernate.mapping.CheckConstraint checkConstraint, String sqlCheckConstraint)
      Overrides:
      appendCheckConstraintOptions in class org.hibernate.dialect.Dialect