xiezhi created OPENJPA-2255:
-------------------------------
Summary: 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
Priority: Minor
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