Class TableDefinition

    • Constructor Detail

      • TableDefinition

        public TableDefinition()
    • Method Detail

      • addField

        public void addField​(String fieldName,
                             Class type)
        PUBLIC: Add the field to the table, default sizes are used.
        Parameters:
        type - is the Java class type corresponding to the database type.
      • addField

        public void addField​(String fieldName,
                             Class type,
                             int fieldSize)
        PUBLIC: Add the field to the table.
        Parameters:
        type - is the Java class type corresponding to the database type.
      • addField

        public void addField​(String fieldName,
                             Class type,
                             int fieldSize,
                             int fieldSubSize)
        PUBLIC: Add the field to the table.
        Parameters:
        type - is the Java class type corresponding to the database type.
      • addField

        public void addField​(String fieldName,
                             String typeName)
        PUBLIC: Add the field to the type to a nested type.
        Parameters:
        typeName - is the name of the nested type.
      • addField

        public void addField​(FieldDefinition field)
        PUBLIC: Add the field to the table.
      • addFieldOnDatabase

        public void addFieldOnDatabase​(AbstractSession session,
                                       FieldDefinition field)
        INTERNAL: Execute the SQL alter table to add the field to the table.
      • addForeignKeyConstraint

        public void addForeignKeyConstraint​(String name,
                                            String sourceField,
                                            String targetField,
                                            String targetTable)
        PUBLIC: Add a foreign key constraint to the table. If there is a same name foreign key constraint already, nothing will happen.
      • addUniqueKeyConstraint

        public void addUniqueKeyConstraint​(String name,
                                           String sourceField)
        PUBLIC: Add a unique key constraint to the table.
      • addUniqueKeyConstraint

        public void addUniqueKeyConstraint​(String name,
                                           String[] sourceFields)
        PUBLIC: Add a unique key constraint to the table.
      • addForeignKeyConstraint

        public void addForeignKeyConstraint​(ForeignKeyConstraint foreignKey)
        PUBLIC: Add a foreign key constraint to the table. If there is a same name foreign key constraint already, nothing will happen.
      • addUniqueKeyConstraint

        public void addUniqueKeyConstraint​(UniqueKeyConstraint uniqueKey)
        PUBLIC: Add a unique key constraint to the table.
      • addIndex

        public void addIndex​(IndexDefinition index)
        PUBLIC: Add an index to the table.
      • addIdentityField

        public void addIdentityField​(String fieldName,
                                     Class type)
        PUBLIC: Add the field to the table, default sizes are used. Identity fields are used on Sybase for native sequencing, The field must be of number type and cannot have a subsize.
        Parameters:
        type - is the Java class type corresponding to the database type.
      • addIdentityField

        public void addIdentityField​(String fieldName,
                                     Class type,
                                     int fieldSize)
        PUBLIC: Add the field to the table, default sizes are used. Identity fields are used on Sybase for native sequencing, The field must be of number type and cannot have a subsize.
        Parameters:
        type - is the Java class type corresponding to the database type.
      • addPrimaryKeyField

        public void addPrimaryKeyField​(String fieldName,
                                       Class type)
        PUBLIC: Add the field to the table, default sizes are used. This field is set as part of the primary key.
        Parameters:
        type - is the Java class type corresponding to the database type.
      • addPrimaryKeyField

        public void addPrimaryKeyField​(String fieldName,
                                       Class type,
                                       int fieldSize)
        PUBLIC: Add the field to the table, default sizes are used. This field is set as part of the primary key.
        Parameters:
        type - is the Java class type corresponding to the database type.
      • buildIndexDeletionWriter

        public Writer buildIndexDeletionWriter​(AbstractSession session,
                                               String key,
                                               Writer writer,
                                               boolean isUniqueSetOnField)
        INTERNAL: Return the index drop statement.
      • getCreationPrefix

        public String getCreationPrefix()
        INTERNAL: Return the beginning of the sql create statement - the part before the name. Unless temp table is created should be "CREATE TABLE "
      • setCreationPrefix

        public void setCreationPrefix​(String creationPrefix)
        INTERNAL: Set the beginning of the sql create statement - the part before the name. Use to create temp. table.
      • getCreationSuffix

        public String getCreationSuffix()
        INTERNAL: Return the end of the sql create statement - the part after the field list. Unless temp table is created should be empty.
      • setCreationSuffix

        public void setCreationSuffix​(String creationSuffix)
        INTERNAL: Set the end of the sql create statement - the part after the field list.
      • buildDatabaseSchemaCreationWriter

        protected Writer buildDatabaseSchemaCreationWriter​(AbstractSession session,
                                                           Writer writer,
                                                           Set<String> createdDatabaseSchemas)
        INTERNAL: Build the create schema DDL.
      • buildDatabaseSchemaDeletionWriter

        protected Writer buildDatabaseSchemaDeletionWriter​(AbstractSession session,
                                                           Writer writer)
        INTERNAL: Build the drop schema DDL.
      • buildFieldTypes

        protected void buildFieldTypes​(AbstractSession session)
        INTERNAL: Build the foreign key constraints.
      • buildForeignKeyConstraintName

        protected String buildForeignKeyConstraintName​(String tableName,
                                                       String fieldName,
                                                       int maximumNameLength,
                                                       DatabasePlatform platform)
        Return foreign key constraint name built from the table and field name with the specified maximum length. To make the name short enough we 1. Drop the "FK_" prefix. 2. Drop the underscore characters if any. 3. Drop the vowels from the table and field name. 4. Truncate the table name to zero length if necessary.
      • buildUniqueKeyConstraintName

        protected String buildUniqueKeyConstraintName​(String tableName,
                                                      int serialNumber,
                                                      int maximumNameLength)
        Return unique key constraint name built from the table name and sequence number with the specified maximum length. To make the name short enough we 1. Drop the "UNQ_" prefix. 2. Drop the underscore characters if any. 3. Drop the vowels from the table name. 4. Truncate the table name to zero length if necessary.
      • buildIndexName

        protected String buildIndexName​(String tableName,
                                        String key,
                                        String indexPrefix,
                                        int maximumNameLength,
                                        DatabasePlatform platform)
        Return key constraint name built from the table and key name with the specified maximum length and index prefix. If indexPrefix is null, "IX_" is used for prefix. To make the name short enough we:
         1. Drop the prefix.
         2. Drop the underscore characters if any.
         3. Drop the vowels from the table and key name.
         4. Truncate the table name to zero length if necessary.
         
      • createIndexes

        public void createIndexes​(AbstractSession session,
                                  Writer writer)
        INTERNAL:
        Write the SQL create index string to create index if passed a writer, else delegate to a method that executes the string on the database.
        Throws:
        ValidationException - wraps any IOException from the writer
      • deletionStringFor

        public String deletionStringFor​(DatabaseAccessor accessor)
        INTERNAL: Return the delete SQL string.
      • dropConstraintsOnDatabase

        public void dropConstraintsOnDatabase​(AbstractSession session)
                                       throws EclipseLinkException
        INTERNAL: Execute the SQL alter table constraint creation string. Exceptions are caught and masked so that all the foreign keys are dropped (even if they don't exist).
        Throws:
        EclipseLinkException
      • dropIndexes

        public void dropIndexes​(AbstractSession session,
                                Writer writer)
        INTERNAL:
        Write the SQL drop index string to drop indexes if passed a writer, else delegate to a method that executes the string on the database.
        Throws:
        ValidationException - wraps any IOException from the writer
      • getField

        public FieldDefinition getField​(String fieldName)
        PUBLIC: Return the field the corresponds to the name.
      • setCreateVPDCalls

        public void setCreateVPDCalls​(boolean createVPDCalls,
                                      String tenantFieldName)
        PUBLIC:
      • getPrimaryKeyFieldNames

        public List<String> getPrimaryKeyFieldNames()
        PUBLIC:
      • preDropObject

        public void preDropObject​(AbstractSession session,
                                  Writer dropSchemaWriter,
                                  boolean createSQLFiles)
        Execute any statements required before the deletion of the object
        Overrides:
        preDropObject in class DatabaseObjectDefinition
        Parameters:
        session -
        dropSchemaWriter -
      • setForeignKeys

        public void setForeignKeys​(List<ForeignKeyConstraint> foreignKeys)
        PUBLIC: Set the ForeignKeyConstraint list. If the list contains the same name foreign key constraints, only the first one of that name will be added.
      • setUserDefinedForeignKeyConstraints

        public void setUserDefinedForeignKeyConstraints​(Map<String,​ForeignKeyConstraint> foreignKeyConstraints)
        PUBLIC: Set the foreign key constraints for this table.
      • setCreateSQLFiles

        public void setCreateSQLFiles​(boolean genFlag)
        PUBLIC: