### Eclipse Workspace Patch 1.0 #P Branch_3_2_5.ga Index: src/org/hibernate/mapping/ForeignKey.java =================================================================== --- src/org/hibernate/mapping/ForeignKey.java (revision 17777) +++ src/org/hibernate/mapping/ForeignKey.java (working copy) @@ -70,7 +70,19 @@ * @param referencedTable */ public void alignColumns() { - if ( isReferenceToPrimaryKey() ) alignColumns(referencedTable); + if ( isReferenceToPrimaryKey() ) { + alignColumns(referencedTable); + } else { + Iterator fkCols = getColumnIterator(); + while ( fkCols.hasNext() ) { + Column fkColumn = (Column) fkCols.next(); + if (fkColumn.isFormula()) continue; + Column refColumn = referencedTable.getColumn(fkColumn); + if (refColumn != null){ + fkColumn.setLength( refColumn.getLength() ); + } + } + } } private void alignColumns(Table referencedTable) { @@ -134,7 +146,7 @@ /** Does this foreignkey reference the primary key of the reference table */ public boolean isReferenceToPrimaryKey() { - return referencedColumns.isEmpty(); + return referencedColumns.isEmpty() && referencedTable.getPrimaryKey() != null; } public void addReferencedColumns(Iterator referencedColumnsIterator) {