openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Teresa Kan (JIRA)" <j...@apache.org>
Subject [jira] Created: (OPENJPA-456) Missed to validate the column name length for Join Column
Date Fri, 30 Nov 2007 05:11:43 GMT
Missed to validate the column name length for Join Column
---------------------------------------------------------

                 Key: OPENJPA-456
                 URL: https://issues.apache.org/jira/browse/OPENJPA-456
             Project: OpenJPA
          Issue Type: Bug
          Components: jdbc
    Affects Versions: 1.1.0
            Reporter: Teresa Kan
             Fix For: 1.1.0


In the PersistenceMappingDefault.populateJoinColumn() method, it missed the call to validate
the column length. Consequencely the column length  that was longer than DB2's max column
length resulted an invalid column length exception .

The fix wil be:

    public void populateJoinColumn(FieldMapping fm, Table local, Table foreign,
        Column col, Object target, int pos, int cols) {
        // only use spec defaults with column targets
        if (!(target instanceof Column))
            return;

        // if this is a bidi relation, prefix with inverse field name, else
        // prefix with owning entity name
        FieldMapping[] inverses = fm.getInverseMappings();
        String name;
        if (inverses.length > 0)
            name = inverses[0].getName();
        else
            name = fm.getDefiningMapping().getTypeAlias();

        // suffix with '_' + target column
        name += "_" + ((Column) target).getName();
        name = dict.getValidColumnName(name, foreign);  ===> add this call before set the
name to the column.
        col.setName(name);
    }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message