Class MySQLLegacyDialect

  • All Implemented Interfaces:
    org.hibernate.boot.model.FunctionContributor, org.hibernate.boot.model.TypeContributor, org.hibernate.exception.spi.ConversionContext
    Direct Known Subclasses:
    MariaDBLegacyDialect, MySQL55Dialect, MySQL57Dialect, MySQL5Dialect

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

      • 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 Detail

      • 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
      • 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
      • getDual

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

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