Package org.apache.ddlutils.model

Examples of org.apache.ddlutils.model.ForeignKey


            // References Constraint
            // --------------------------

            if ( columnDefinition.mReferenced != null && !columns.mVersioned ) {

                ForeignKey foreignKey = new ForeignKey();
                Reference reference = new Reference();
                String referencedTableName = columnDefinition.mReferenced.substring(
                        0, columnDefinition.mReferenced.indexOf("(")
                );
                String referencedColumnName = columnDefinition.mReferenced.substring(
                        columnDefinition.mReferenced.indexOf("(") + 1,
                        columnDefinition.mReferenced.indexOf(")")
                );
                org.apache.ddlutils.model.Table referencedTable = pDb.findTable(referencedTableName);
                String fkName = (t.getName()
                                 + c.getName()
                                 + "FK"
                                 + referencedTableName
                                 + referencedColumnName);


                foreignKey.setName(fkName);

                if ( referencedTable != null ) {
                    Column referencedColumn = referencedTable.findColumn(referencedColumnName);
                    if ( referencedTable.getName().equals(t.getName())
                         && pRepository.isLoggingDebug()
                         && referencedColumn.getName().equals(c.getName()) ) {
                        if ( pRepository.isLoggingDebug() ) {
                            pRepository.logDebug(
                                    "Skipping foreign key constraint, table and column are the same. Table.Column="
                                    + referencedTableName
                                    + "."
                                    + referencedColumnName
                            );
                        }
                    } else {
                        reference.setForeignColumn(referencedColumn);
                        reference.setLocalColumn(c);
                        foreignKey.addReference(reference);
                        foreignKey.setForeignTable(referencedTable);
                        // try to find existing fk
                        ForeignKey existingKey = t.findForeignKey(foreignKey);
                        // don't add this fk if the name is already used
                        if ( existingKey == null ) {
                            t.addForeignKey(foreignKey);
                        }
                    }
View Full Code Here


     */
    protected void writeEmbeddedForeignKeysStmt(Database database, Table table) throws IOException
    {
        for (int idx = 0; idx < table.getForeignKeyCount(); idx++)
        {
            ForeignKey key = table.getForeignKey(idx);

            if (key.getForeignTableName() == null)
            {
                internal._log.warn("Foreign key table is null for key " + key);
            }
            else
            {
              internal.printStartOfEmbeddedStatement();
                if (internal.getPlatformInfo().isEmbeddedForeignKeysNamed())
                {
                  internal.print("CONSTRAINT ");
                  internal.printIdentifier(internal.getForeignKeyName(table, key));
                  internal.print(" ");
                }
                internal.print("FOREIGN KEY (");
                internal.writeLocalReferences(key);
                internal.print(") REFERENCES ");
                internal.printIdentifier(internal.getTableName(database.findTable(key.getForeignTableName())));
                internal.print(" (");
                internal.writeForeignReferences(key);
                internal.print(")");
               
                String onDeleteClause = getOnDeleteClauseForCode(((org.apache.jetspeed.maven.plugins.db.ddlutils.model.ForeignKey)key).getDeleteRuleCode());
View Full Code Here

TOP

Related Classes of org.apache.ddlutils.model.ForeignKey

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.