OpenJPA
  1. OpenJPA
  2. OPENJPA-456

Missed to validate the column name length for Join Column

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.1.0
    • Fix Version/s: 1.1.0, 1.2.0
    • Component/s: jdbc
    • Labels:
      None

      Description

      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); }
      1. openjpa_456_2.patch
        1.0 kB
        Teresa Kan
      2. OPENJPA-456.patch
        0.6 kB
        Teresa Kan

        Activity

          People

          • Assignee:
            Michael Dick
            Reporter:
            Teresa Kan
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development