Class MySQL56SpatialDialect

  • All Implemented Interfaces:
    java.io.Serializable, org.hibernate.exception.spi.ConversionContext, SpatialDialect
    Direct Known Subclasses:
    MySQL56InnoDBSpatialDialect

    public class MySQL56SpatialDialect
    extends org.hibernate.dialect.MySQL55Dialect
    implements SpatialDialect
    Extends the MySQL5Dialect by including support for the spatial operators.

    This SpatialDialect uses the ST_* spatial operators that operate on exact geometries which have been added in MySQL version 5.6.1. Previous versions of MySQL only supported operators that operated on Minimum Bounding Rectangles (MBR's). This dialect my therefore produce different results than the other MySQL spatial dialects.

    See Also:
    Serialized Form
    • Field Summary

      • Fields inherited from class org.hibernate.dialect.Dialect

        CLOSED_QUOTE, DEFAULT_BATCH_SIZE, LEGACY_LOB_MERGE_STRATEGY, NEW_LOCATOR_LOB_MERGE_STRATEGY, NO_BATCH, QUOTE, STANDARD_DEFAULT_BATCH_LOAD_SIZING_STRATEGY, STREAM_XFER_LOB_MERGE_STRATEGY
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void contributeTypes​(org.hibernate.boot.model.TypeContributions typeContributions, org.hibernate.service.ServiceRegistry serviceRegistry)
      Allows the Dialect to contribute additional types
      java.lang.String getDWithinSQL​(java.lang.String columnName)
      Returns The SQL fragment when parsing a DWithinExpression.
      java.lang.String getHavingSridSQL​(java.lang.String columnName)
      Returns the SQL fragment when parsing a HavingSridExpression.
      java.lang.String getIsEmptySQL​(java.lang.String columnName, boolean isEmpty)
      Returns the SQL fragment when parsing a IsEmptyExpression or IsNotEmpty expression.
      java.lang.String getSpatialAggregateSQL​(java.lang.String columnName, int aggregation)
      Returns the SQL fragment for the specfied Spatial aggregate expression.
      java.lang.String getSpatialFilterExpression​(java.lang.String columnName)
      Returns the SQL fragment for the SQL WHERE-expression when parsing org.hibernate.spatial.criterion.SpatialFilterExpressions into prepared statements.
      java.lang.String getSpatialRelateSQL​(java.lang.String columnName, int spatialRelation)
      Returns the SQL fragment for the SQL WHERE-clause when parsing org.hibernatespatial.criterion.SpatialRelateExpressions into prepared statements.
      java.lang.String getTypeName​(int code, long length, int precision, int scale)  
      org.hibernate.type.descriptor.sql.SqlTypeDescriptor remapSqlTypeDescriptor​(org.hibernate.type.descriptor.sql.SqlTypeDescriptor sqlTypeDescriptor)  
      boolean supports​(SpatialFunction function)
      Does this dialect supports the specified SpatialFunction.
      boolean supportsFiltering()
      Returns true if this SpatialDialect supports a specific filtering function.
      • Methods inherited from class org.hibernate.dialect.MySQL55Dialect

        getDefaultMySQLStorageEngine
      • Methods inherited from class org.hibernate.dialect.MySQL5Dialect

        getEngineKeyword, getQueryHintString, getViolatedConstraintNameExtracter, registerVarcharTypes, supportsColumnCheck
      • Methods inherited from class org.hibernate.dialect.MySQLDialect

        areStringComparisonsCaseInsensitive, buildSQLExceptionConversionDelegate, canCreateCatalog, canCreateSchema, closeQuote, dropConstraints, escapeLiteral, fixedPointNumberCastTarget, floatingPointNumberCastTarget, getAddColumnString, getAddForeignKeyConstraintString, getCastTypeName, getColumnComment, getCreateCatalogCommand, getCreateSchemaCommand, getCurrentTimestampSelectString, getDefaultMultiTableBulkIdStrategy, getDropCatalogCommand, getDropForeignKeyString, getDropSchemaCommand, getForUpdateString, getIdentityColumnSupport, getLimitHandler, getLimitString, getNotExpression, getReadLockString, getResultSet, getSelectGUIDString, getTableComment, getTableTypeString, getUniqueDelegate, getWriteLockString, hasSelfReferentialForeignKeyBug, isCurrentTimestampSelectStringCallable, isJdbcLogWarningsEnabledByDefault, openQuote, qualifyIndexName, registerResultSetOutParameter, renderOrderByElement, smallIntegerCastTarget, supportsCascadeDelete, supportsCurrentTimestampSelection, supportsEmptyInList, supportsIfExistsBeforeTableName, supportsLimit, supportsLobValueChangePropogation, supportsLockTimeouts, supportsRowValueConstructorSyntax, supportsSubqueryOnMutatingTable
      • Methods inherited from class org.hibernate.dialect.Dialect

        addSqlHintOrComment, appendLockHint, appendLockHint, applyLocksToSql, augmentRecognizedTableTypes, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildIdentifierHelper, buildSQLExceptionConverter, cast, cast, cast, convertToFirstRowValue, createCaseFragment, createOuterJoinFragment, defaultScrollMode, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, escapeComment, forceLimitUsage, forceLobAsLastValue, forUpdateOfColumns, getAddColumnSuffixString, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getAddUniqueConstraintString, getAlterTableString, getAuxiliaryDatabaseObjectExporter, getCallableStatementSupport, getCascadeConstraintsString, getCaseInsensitiveLike, getColumnAliasExtractor, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCrossJoinSeparator, getCurrentSchemaCommand, getCurrentTimestampSQLFunctionName, getDefaultBatchLoadSizingStrategy, getDefaultProperties, getDialect, getDialect, getDropSequenceString, getDropSequenceStrings, getDropTableString, getForeignKeyExporter, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateSkipLockedString, getForUpdateSkipLockedString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIndexExporter, getInExpressionCountLimit, getKeywords, getLimitString, getLobMergeStrategy, getLockingStrategy, getLowercaseFunction, getMaxAliasLength, getNameQualifierSupport, getNativeIdentifierGeneratorClass, getNativeIdentifierGeneratorStrategy, getNoColumnsInsertString, getNullColumnString, getQueryHintString, getQuerySequencesString, getReadLockString, getResultSet, getResultSet, getSchemaNameResolver, getSelectClauseNullString, getSelectSequenceNextValString, getSequenceExporter, getSequenceInformationExtractor, getSequenceNextValString, getSqlTypeDescriptorOverride, getTableExporter, getTypeName, getUniqueKeyExporter, getWriteLockString, hasAlterTable, inlineLiteral, isLegacyLimitHandlerBehaviorEnabled, isLockTimeoutParameterized, isTypeNameRegistered, prependComment, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, replaceResultVariableInOrderByClauseWithPosition, requiresCastingOfParametersInSelectClause, requiresParensForTupleDistinctCounts, supportsBindAsCallableArgument, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsCommentOn, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsIfExistsAfterAlterTable, supportsIfExistsAfterConstraintName, supportsIfExistsAfterTableName, supportsIfExistsBeforeConstraintName, supportsLimitOffset, supportsNamedParameters, supportsNationalizedTypes, supportsNonQueryWithCTE, supportsNotNullUnique, supportsNoWait, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsPartitionBy, supportsPooledSequences, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntaxInInList, supportsSequences, supportsSkipLocked, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTupleCounts, supportsTupleDistinctCounts, supportsTuplesInSubqueries, supportsUnboundedLobLocatorMaterialization, supportsUnionAll, supportsUnique, supportsUniqueConstraintInCreateAlterTable, supportsValuesList, supportsVariableLimit, toBooleanValueString, toString, transformSelectString, useFollowOnLocking, useFollowOnLocking, useInputStreamToInsertBlob, useMaxForLimit
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • MySQL56SpatialDialect

        public MySQL56SpatialDialect()
        Constructs the dialect
    • Method Detail

      • remapSqlTypeDescriptor

        public org.hibernate.type.descriptor.sql.SqlTypeDescriptor remapSqlTypeDescriptor​(org.hibernate.type.descriptor.sql.SqlTypeDescriptor sqlTypeDescriptor)
        Overrides:
        remapSqlTypeDescriptor in class org.hibernate.dialect.Dialect
      • getTypeName

        public java.lang.String getTypeName​(int code,
                                            long length,
                                            int precision,
                                            int scale)
                                     throws org.hibernate.HibernateException
        Overrides:
        getTypeName in class org.hibernate.dialect.Dialect
        Throws:
        org.hibernate.HibernateException
      • contributeTypes

        public void contributeTypes​(org.hibernate.boot.model.TypeContributions typeContributions,
                                    org.hibernate.service.ServiceRegistry serviceRegistry)
        Allows the Dialect to contribute additional types
        Overrides:
        contributeTypes in class org.hibernate.dialect.Dialect
        Parameters:
        typeContributions - Callback to contribute the types
        serviceRegistry - The service registry
      • getSpatialRelateSQL

        public java.lang.String getSpatialRelateSQL​(java.lang.String columnName,
                                                    int spatialRelation)
        Description copied from interface: SpatialDialect
        Returns the SQL fragment for the SQL WHERE-clause when parsing org.hibernatespatial.criterion.SpatialRelateExpressions into prepared statements.

        Specified by:
        getSpatialRelateSQL in interface SpatialDialect
        Parameters:
        columnName - The name of the geometry-typed column to which the relation is applied
        spatialRelation - The type of spatial relation (as defined in SpatialRelation).
        Returns:
        SQL fragment SpatialRelateExpression
      • getSpatialFilterExpression

        public java.lang.String getSpatialFilterExpression​(java.lang.String columnName)
        Description copied from interface: SpatialDialect
        Returns the SQL fragment for the SQL WHERE-expression when parsing org.hibernate.spatial.criterion.SpatialFilterExpressions into prepared statements.
        Specified by:
        getSpatialFilterExpression in interface SpatialDialect
        Parameters:
        columnName - The name of the geometry-typed column to which the filter is be applied
        Returns:
        Rhe SQL fragment for the SpatialFilterExpression
      • getSpatialAggregateSQL

        public java.lang.String getSpatialAggregateSQL​(java.lang.String columnName,
                                                       int aggregation)
        Description copied from interface: SpatialDialect
        Returns the SQL fragment for the specfied Spatial aggregate expression.
        Specified by:
        getSpatialAggregateSQL in interface SpatialDialect
        Parameters:
        columnName - The name of the Geometry property
        aggregation - The type of SpatialAggregate
        Returns:
        The SQL fragment for the projection
      • getDWithinSQL

        public java.lang.String getDWithinSQL​(java.lang.String columnName)
        Description copied from interface: SpatialDialect
        Returns The SQL fragment when parsing a DWithinExpression.
        Specified by:
        getDWithinSQL in interface SpatialDialect
        Parameters:
        columnName - The geometry column to test against
        Returns:
        The SQL fragment when parsing a DWithinExpression.
      • getHavingSridSQL

        public java.lang.String getHavingSridSQL​(java.lang.String columnName)
        Description copied from interface: SpatialDialect
        Returns the SQL fragment when parsing a HavingSridExpression.
        Specified by:
        getHavingSridSQL in interface SpatialDialect
        Parameters:
        columnName - The geometry column to test against
        Returns:
        The SQL fragment for a HavingSridExpression.
      • getIsEmptySQL

        public java.lang.String getIsEmptySQL​(java.lang.String columnName,
                                              boolean isEmpty)
        Description copied from interface: SpatialDialect
        Returns the SQL fragment when parsing a IsEmptyExpression or IsNotEmpty expression.
        Specified by:
        getIsEmptySQL in interface SpatialDialect
        Parameters:
        columnName - The geometry column
        isEmpty - Whether the geometry is tested for empty or non-empty
        Returns:
        The SQL fragment for the isempty function
      • supportsFiltering

        public boolean supportsFiltering()
        Description copied from interface: SpatialDialect
        Returns true if this SpatialDialect supports a specific filtering function.

        This is intended to signal DB-support for fast window queries, or MBR-overlap queries.

        Specified by:
        supportsFiltering in interface SpatialDialect
        Returns:
        True if filtering is supported
      • supports

        public boolean supports​(SpatialFunction function)
        Description copied from interface: SpatialDialect
        Does this dialect supports the specified SpatialFunction.
        Specified by:
        supports in interface SpatialDialect
        Parameters:
        function - SpatialFunction
        Returns:
        True if this SpatialDialect supports the spatial function specified by the function parameter.