Class OracleLegacyDialect

  • All Implemented Interfaces:
    org.hibernate.boot.model.FunctionContributor, org.hibernate.boot.model.TypeContributor, org.hibernate.exception.spi.ConversionContext
    Direct Known Subclasses:
    Oracle10gDialect, Oracle8iDialect, Oracle9iDialect

    public class OracleLegacyDialect
    extends org.hibernate.dialect.Dialect
    A SQL dialect for Oracle 8i and above.
    • Constructor Detail

      • OracleLegacyDialect

        public OracleLegacyDialect()
      • OracleLegacyDialect

        public OracleLegacyDialect​(org.hibernate.dialect.DatabaseVersion version)
      • OracleLegacyDialect

        public OracleLegacyDialect​(org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo info)
    • Method Detail

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

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

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

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

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

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

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

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

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

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

        public boolean supportsInsertReturningGeneratedKeys()
        Overrides:
        supportsInsertReturningGeneratedKeys in class org.hibernate.dialect.Dialect
      • castPattern

        public String castPattern​(org.hibernate.query.sqm.CastType from,
                                  org.hibernate.query.sqm.CastType to)
        Oracle doesn't have any sort of Types.BOOLEAN type or Types.TIME type, and its default behavior for casting dates and timestamps to and from strings is just awful.
        Overrides:
        castPattern in class org.hibernate.dialect.Dialect
      • getFractionalSecondPrecisionInNanos

        public long getFractionalSecondPrecisionInNanos()
        We minimize multiplicative factors by using seconds (with fractional part) as the "native" precision for duration arithmetic.
        Overrides:
        getFractionalSecondPrecisionInNanos in class org.hibernate.dialect.Dialect
      • extractPattern

        public String extractPattern​(org.hibernate.query.sqm.TemporalUnit unit)
        Oracle supports a limited list of temporal fields in the extract() function, but we can emulate some of them by using to_char() with a format string instead of extract(). Thus, the additional supported fields are TemporalUnit.DAY_OF_YEAR, TemporalUnit.DAY_OF_MONTH, TemporalUnit.DAY_OF_YEAR, and TemporalUnit.WEEK.
        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
      • columnType

        protected String columnType​(int sqlTypeCode)
        Overrides:
        columnType 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
      • getTimeZoneSupport

        public org.hibernate.dialect.TimeZoneSupport getTimeZoneSupport()
        Overrides:
        getTimeZoneSupport in class org.hibernate.dialect.Dialect
      • initDefaultProperties

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

        public int getDefaultStatementBatchSize()
        Overrides:
        getDefaultStatementBatchSize in class org.hibernate.dialect.Dialect
      • getDefaultUseGetGeneratedKeys

        public boolean getDefaultUseGetGeneratedKeys()
        Overrides:
        getDefaultUseGetGeneratedKeys 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
      • supportsBitType

        public boolean supportsBitType()
        Oracle has neither BIT nor BOOLEAN.
        Overrides:
        supportsBitType in class org.hibernate.dialect.Dialect
        Returns:
        false
      • getArrayTypeName

        public String getArrayTypeName​(String javaElementTypeName,
                                       String elementTypeName,
                                       Integer maxLength)
        Overrides:
        getArrayTypeName in class org.hibernate.dialect.Dialect
      • getPreferredSqlTypeCodeForArray

        public int getPreferredSqlTypeCodeForArray()
        Overrides:
        getPreferredSqlTypeCodeForArray 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
      • getAggregateSupport

        public org.hibernate.dialect.aggregate.AggregateSupport getAggregateSupport()
        Overrides:
        getAggregateSupport in class org.hibernate.dialect.Dialect
      • getNativeIdentifierGeneratorStrategy

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

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

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

        public String getSelectClauseNullString​(int sqlType,
                                                org.hibernate.type.spi.TypeConfiguration typeConfiguration)
        Overrides:
        getSelectClauseNullString in class org.hibernate.dialect.Dialect
      • getCurrentTimestampSelectString

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

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

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

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

        public org.hibernate.dialect.sequence.SequenceSupport getSequenceSupport()
        Overrides:
        getSequenceSupport in class org.hibernate.dialect.Dialect
      • getQuerySequencesString

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

        public org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor getSequenceInformationExtractor()
        Overrides:
        getSequenceInformationExtractor in class org.hibernate.dialect.Dialect
      • getSelectGUIDString

        public String getSelectGUIDString()
        Overrides:
        getSelectGUIDString 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
      • buildSQLExceptionConversionDelegate

        public org.hibernate.exception.spi.SQLExceptionConversionDelegate buildSQLExceptionConversionDelegate()
        Overrides:
        buildSQLExceptionConversionDelegate 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
      • supportsCommentOn

        public boolean supportsCommentOn()
        Overrides:
        supportsCommentOn 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
      • supportsExistsInSelect

        public boolean supportsExistsInSelect()
        Overrides:
        supportsExistsInSelect in class org.hibernate.dialect.Dialect
      • getInExpressionCountLimit

        public int getInExpressionCountLimit()
        Overrides:
        getInExpressionCountLimit in class org.hibernate.dialect.Dialect
      • forceLobAsLastValue

        public boolean forceLobAsLastValue()
        Overrides:
        forceLobAsLastValue in class org.hibernate.dialect.Dialect
      • isEmptyStringTreatedAsNull

        public boolean isEmptyStringTreatedAsNull()
        Overrides:
        isEmptyStringTreatedAsNull 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
      • getTemporaryTableCreateOptions

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

        public boolean useFollowOnLocking​(String sql,
                                          org.hibernate.query.spi.QueryOptions queryOptions)
        For Oracle, the FOR UPDATE clause cannot be applied when using ORDER BY, DISTINCT or views.
        Overrides:
        useFollowOnLocking in class org.hibernate.dialect.Dialect
        See Also:
        Oracle FOR UPDATE restrictions
      • getQueryHintString

        public String getQueryHintString​(String sql,
                                         String hints)
        Overrides:
        getQueryHintString 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
      • getCallableStatementSupport

        public org.hibernate.procedure.spi.CallableStatementSupport getCallableStatementSupport()
        Overrides:
        getCallableStatementSupport in class org.hibernate.dialect.Dialect
      • canCreateSchema

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

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

        public boolean supportsPartitionBy()
        Overrides:
        supportsPartitionBy in class org.hibernate.dialect.Dialect
      • supportsTupleDistinctCounts

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

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

        public boolean supportsFetchClause​(org.hibernate.query.sqm.FetchClauseType type)
        Overrides:
        supportsFetchClause in class org.hibernate.dialect.Dialect
      • supportsWindowFunctions

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

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

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

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

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

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

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

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

        public String getForUpdateNowaitString​(String aliases)
        Overrides:
        getForUpdateNowaitString 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
      • 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
      • supportsTemporalLiteralOffset

        public boolean supportsTemporalLiteralOffset()
        Overrides:
        supportsTemporalLiteralOffset in class org.hibernate.dialect.Dialect
      • appendDateTimeLiteral

        public void appendDateTimeLiteral​(org.hibernate.sql.ast.spi.SqlAppender appender,
                                          TemporalAccessor temporalAccessor,
                                          TemporalType precision,
                                          TimeZone jdbcTimeZone)
        Overrides:
        appendDateTimeLiteral 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,
                                                                    boolean useFm,
                                                                    boolean resetFm)
      • appendBinaryLiteral

        public void appendBinaryLiteral​(org.hibernate.sql.ast.spi.SqlAppender appender,
                                        byte[] bytes)
        Overrides:
        appendBinaryLiteral in class org.hibernate.dialect.Dialect
      • registerResultSetOutParameter

        public int registerResultSetOutParameter​(CallableStatement statement,
                                                 String name)
                                          throws SQLException
        Overrides:
        registerResultSetOutParameter in class org.hibernate.dialect.Dialect
        Throws:
        SQLException
      • supportsNamedParameters

        public boolean supportsNamedParameters​(DatabaseMetaData databaseMetaData)
        Overrides:
        supportsNamedParameters in class org.hibernate.dialect.Dialect
      • generatedAs

        public String generatedAs​(String generatedAs)
        Overrides:
        generatedAs 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
      • canDisableConstraints

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

        public String getDisableConstraintStatement​(String tableName,
                                                    String name)
        Overrides:
        getDisableConstraintStatement in class org.hibernate.dialect.Dialect
      • getEnableConstraintStatement

        public String getEnableConstraintStatement​(String tableName,
                                                   String name)
        Overrides:
        getEnableConstraintStatement in class org.hibernate.dialect.Dialect
      • getUniqueDelegate

        public org.hibernate.dialect.unique.UniqueDelegate getUniqueDelegate()
        Overrides:
        getUniqueDelegate in class org.hibernate.dialect.Dialect
      • getCreateUserDefinedTypeKindString

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

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

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