[
https://issues.apache.org/jira/browse/OPENJPA-2255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13449778#comment-13449778
]
Albert Lee commented on OPENJPA-2255:
-------------------------------------
I don't think the new message is in error.
What the message saying is the classField in the database has column length 255
and whereas the id field of the @OneToMany side has column length 128. This
means OpenJPA recognized the length=128 set on the id field. Before the patch,
join column did not pick up the id column length and defaulted to 255,
therefore this message did not happened. Either the id column has to match the
join column length or the join column length need to match the id length.
This is just the reverse of the original scenario.
Albert Lee.
> Couldn't load the referencedColumn definition when create the JoinTable
> -----------------------------------------------------------------------
>
> Key: OPENJPA-2255
> URL: https://issues.apache.org/jira/browse/OPENJPA-2255
> Project: OpenJPA
> Issue Type: Bug
> Components: jpa
> Affects Versions: 2.1.1
> Reporter: xiezhi
> Assignee: Albert Lee
> Priority: Minor
> Labels: documentation, patch
> Attachments: OPENJPA-2255.patch
>
>
> The JoinColumn couldn't have the referencedColumn's definition which includes
> the length definition. and it's length should be assigned to the default
> value 255.
> @Entity
> public class Student {
> @Id @Column(name="id", length=128, nullable=false) private String id;
> @Column(name="sName", length=255) private String sName;
> @ManyToMany
> @JoinTable(
> name="student_course_map",
> joinColumns={@JoinColumn(name="student_id", referencedColumnName="id",
> nullable=false)},
> inverseJoinColumns={@JoinColumn(name="course_id",
> referencedColumnName="id", nullable=false)}
> )
> public Collection getCourses()
> ...
> }
> @Entity
> public class Courses{
> @Id @Column(name="id", length=128, nullable=false) private String id;
> @Column(name="cName", length=255) private String cName;
> ...
> }
> We can see the student id length has been defined to 128. And there is no
> definition length in the JoinColumn student_id. The JoinColumn should be set
> to the default value 255.
> The warning message will occur like this
> WARN [Schema] Existing column "student_id" on table
> "test.student_course_map" is incompatible with the same column in the given
> schema definition. Existing column:
> Full Name: student_course_map.student_id
> Type: varchar
> Size: 128
> Default: null
> Not Null: true
> Given column:
> Full Name: student_course_map.student_id
> Type: varchar
> Size: 255
> Default: null
> Not Null: true
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira