You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Teresa Kan (JIRA)" <ji...@apache.org> on 2007/11/30 06:13:43 UTC
[jira] Updated: (OPENJPA-456) Missed to validate the column name
length for Join Column
[ https://issues.apache.org/jira/browse/OPENJPA-456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Teresa Kan updated OPENJPA-456:
-------------------------------
Attachment: OPENJPA-456.patch
Attach the patch..
> 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
>
> Attachments: OPENJPA-456.patch
>
>
> 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.