Class DefaultUniqueDelegate

    • Field Detail

      • dialect

        protected final Dialect dialect
    • Constructor Detail

      • DefaultUniqueDelegate

        public DefaultUniqueDelegate​(Dialect dialect)
        Constructs DefaultUniqueDelegate
        Parameters:
        dialect - The dialect for which we are handling unique constraints
    • Method Detail

      • getColumnDefinitionUniquenessFragment

        public java.lang.String getColumnDefinitionUniquenessFragment​(Column column,
                                                                      SqlStringGenerationContext context)
        Description copied from interface: UniqueDelegate
        Get the fragment that can be used to make a column unique as part of its column definition.

        This is intended for dialects which do not support unique constraints

        Specified by:
        getColumnDefinitionUniquenessFragment in interface UniqueDelegate
        Parameters:
        column - The column to which to apply the unique
        context - A context for SQL string generation
        Returns:
        The fragment (usually "unique"), empty string indicates the uniqueness will be indicated using a different approach
      • getTableCreationUniqueConstraintsFragment

        public java.lang.String getTableCreationUniqueConstraintsFragment​(Table table,
                                                                          SqlStringGenerationContext context)
        Description copied from interface: UniqueDelegate
        Get the fragment that can be used to apply unique constraints as part of table creation. The implementation should iterate over the UniqueKey instances for the given table (see Table.getUniqueKeyIterator() and generate the whole fragment for all unique keys

        Intended for Dialects which support unique constraint definitions, but just not in separate ALTER statements.

        Specified by:
        getTableCreationUniqueConstraintsFragment in interface UniqueDelegate
        Parameters:
        table - The table for which to generate the unique constraints fragment
        context - A context for SQL string generation
        Returns:
        The fragment, typically in the form ", unique(col1, col2), unique( col20)". NOTE: The leading comma is important!
      • getAlterTableToAddUniqueKeyCommand

        public java.lang.String getAlterTableToAddUniqueKeyCommand​(UniqueKey uniqueKey,
                                                                   Metadata metadata,
                                                                   SqlStringGenerationContext context)
        Description copied from interface: UniqueDelegate
        Get the SQL ALTER TABLE command to be used to create the given UniqueKey.
        Specified by:
        getAlterTableToAddUniqueKeyCommand in interface UniqueDelegate
        Parameters:
        uniqueKey - The UniqueKey instance. Contains all information about the columns
        metadata - Access to the bootstrap mapping information
        context - A context for SQL string generation
        Returns:
        The ALTER TABLE command
      • uniqueConstraintSql

        protected java.lang.String uniqueConstraintSql​(UniqueKey uniqueKey)
      • getAlterTableToDropUniqueKeyCommand

        public java.lang.String getAlterTableToDropUniqueKeyCommand​(UniqueKey uniqueKey,
                                                                    Metadata metadata,
                                                                    SqlStringGenerationContext context)
        Description copied from interface: UniqueDelegate
        Get the SQL ALTER TABLE command to be used to drop the given UniqueKey.
        Specified by:
        getAlterTableToDropUniqueKeyCommand in interface UniqueDelegate
        Parameters:
        uniqueKey - The UniqueKey instance. Contains all information about the columns
        metadata - Access to the bootstrap mapping information
        context - A context for SQL string generation
        Returns:
        The ALTER TABLE command
      • getDropUnique

        protected java.lang.String getDropUnique()