columnDefinition spuriously applied to column name in several contexts
----------------------------------------------------------------------

                 Key: OPENJPA-371
                 URL: https://issues.apache.org/jira/browse/OPENJPA-371
             Project: OpenJPA
          Issue Type: Bug
          Components: jdbc
    Affects Versions: 1.0.0
            Reporter: Jonathan Feinberg


For example, @JoinColumn(name = "file_id", referencedColumnName = "id", 
columnDefinition = "char(32)") results in sql emitted "(char(32) VARCHAR(255)" 
instead of expected "(file_id char(32)". Patch enclosed:

--- 
openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java
      (revision 575761)
+++ 
openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java
      (working copy)
@@ -423,7 +423,7 @@
         if (!StringUtils.isEmpty(join.name()))
             col.setName(join.name());
         if (!StringUtils.isEmpty(join.columnDefinition()))
-            col.setName(join.columnDefinition());
+            col.setTypeName(join.columnDefinition());
         if (!StringUtils.isEmpty(join.referencedColumnName()))
             col.setTarget(join.referencedColumnName());
         return col;
@@ -1183,7 +1183,7 @@
         if (!StringUtils.isEmpty(join.name()))
             col.setName(join.name());
         if (!StringUtils.isEmpty(join.columnDefinition()))
-            col.setName(join.columnDefinition());
+            col.setTypeName(join.columnDefinition());
         if (!StringUtils.isEmpty(join.referencedColumnName()))
             col.setTarget(join.referencedColumnName());
         col.setNotNull(!join.nullable());
@@ -1236,7 +1236,7 @@
         if (!StringUtils.isEmpty(join.name()))
             col.setName(join.name());
         if (!StringUtils.isEmpty(join.columnDefinition()))
-            col.setName(join.columnDefinition());
+            col.setTypeName(join.columnDefinition());
         if (!StringUtils.isEmpty(join.referencedColumnName()))
             col.setTarget(join.referencedColumnName());
         if (!StringUtils.isEmpty(join.referencedAttributeName()))
@@ -1342,7 +1342,7 @@
         if (!StringUtils.isEmpty(join.name()))
             col.setName(join.name());
         if (!StringUtils.isEmpty(join.columnDefinition()))
-            col.setName(join.columnDefinition());
+            col.setTypeName(join.columnDefinition());
         if (!StringUtils.isEmpty(join.referencedColumnName()))
             col.setTarget(join.referencedColumnName());
         if (!StringUtils.isEmpty(join.referencedAttributeName()))

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

Reply via email to