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​(org.eclipse.persistence.internal.sessions.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.
      • buildConstraintCreationWriter

        public Writer buildConstraintCreationWriter​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                    ForeignKeyConstraint foreignKey,
                                                    Writer writer)
                                             throws ValidationException
        INTERNAL: Return the alter table statement to add the constraints. This is done separately from the create because of dependencies.
        Throws:
        ValidationException
      • buildConstraintDeletionWriter

        public Writer buildConstraintDeletionWriter​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                    ForeignKeyConstraint foreignKey,
                                                    Writer writer)
                                             throws ValidationException
        INTERNAL: Return the alter table statement to drop the constraints. This is done separately to allow constraints to be dropped before the tables.
        Throws:
        ValidationException
      • buildUniqueConstraintCreationWriter

        public Writer buildUniqueConstraintCreationWriter​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                          UniqueKeyConstraint uniqueKey,
                                                          Writer writer)
                                                   throws ValidationException
        INTERNAL: Return the alter table statement to add the constraints. This is done separately from the create because of dependencies.
        Throws:
        ValidationException
      • buildUniqueConstraintDeletionWriter

        public Writer buildUniqueConstraintDeletionWriter​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                          UniqueKeyConstraint uniqueKey,
                                                          Writer writer)
                                                   throws ValidationException
        INTERNAL: Return the alter table statement to drop the constraints. This is done separately to allow constraints to be dropped before the tables.
        Throws:
        ValidationException
      • buildIndex

        public IndexDefinition buildIndex​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                          String key,
                                          List<String> columnNames,
                                          boolean isUniqueSetOnField)
        INTERNAL: Return the index creation statement.
      • buildIndexDeletionWriter

        public Writer buildIndexDeletionWriter​(org.eclipse.persistence.internal.sessions.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.
      • createConstraints

        public void createConstraints​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                      Writer schemaWriter)
                               throws EclipseLinkException
        INTERNAL: Execute the SQL alter table constraint creation string.
        Throws:
        EclipseLinkException
      • createConstraintsOnDatabase

        public void createConstraintsOnDatabase​(org.eclipse.persistence.internal.sessions.AbstractSession session)
                                         throws EclipseLinkException
        INTERNAL: Execute the SQL alter table constraint creation string.
        Throws:
        EclipseLinkException
      • createIndexes

        public void createIndexes​(org.eclipse.persistence.internal.sessions.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
      • writeLineSeperator

        public void writeLineSeperator​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                       Writer writer)
      • deletionStringFor

        public String deletionStringFor​(org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor accessor)
        INTERNAL: Return the delete SQL string.
      • dropConstraints

        public void dropConstraints​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                    Writer schemaWriter)
                             throws EclipseLinkException
        INTERNAL: Execute the SQL alter table constraint creation string.
        Throws:
        EclipseLinkException
      • dropConstraintsOnDatabase

        public void dropConstraintsOnDatabase​(org.eclipse.persistence.internal.sessions.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​(org.eclipse.persistence.internal.sessions.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:
      • postCreateObject

        public void postCreateObject​(org.eclipse.persistence.internal.sessions.AbstractSession session,
                                     Writer createSchemaWriter,
                                     boolean createSQLFiles)
        Execute any statements required after the creation of the object
        Overrides:
        postCreateObject in class DatabaseObjectDefinition
        Parameters:
        session -
        createSchemaWriter -
      • preDropObject

        public void preDropObject​(org.eclipse.persistence.internal.sessions.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.
      • shouldCreateVPDCalls

        public boolean shouldCreateVPDCalls​(org.eclipse.persistence.internal.sessions.AbstractSession session)
        INTERNAL: Subclasses who care should override this method.
        Overrides:
        shouldCreateVPDCalls in class DatabaseObjectDefinition
      • setCreateSQLFiles

        public void setCreateSQLFiles​(boolean genFlag)
        PUBLIC:
      • getTable

        public org.eclipse.persistence.internal.helper.DatabaseTable getTable()
      • setTable

        public void setTable​(org.eclipse.persistence.internal.helper.DatabaseTable table)