Map Mapping fails if there are duplicate values [message #962945] |
Mon, 29 October 2012 08:57  |
Eclipse User |
|
|
|
I'm trying to map a HashMap similar to the one that is specified as example 3 in the JavaDoc for @MapKeyJoinColumn:
@Entity
public class Student {
@Id int studentId;
...
@ManyToMany // students and courses are also many-many
@JoinTable(name="ENROLLMENTS",
joinColumns=@JoinColumn(name="STUDENT"),
inverseJoinColumns=@JoinColumn(name="SEMESTER"))
@MapKeyJoinColumn(name="COURSE")
Map<Course, Semester> enrollment;
...
}
The generated join table (generated with EclipseLink 2.3) has the following layout:
TABLE enrollments (
student_id bigint NOT NULL,
semester_id bigint NOT NULL,
course_id bigint,
CONSTRAINT enrollments_pkey PRIMARY KEY (student_id, semester_id)
)
Why is the primary key generated for Student and Semester and not for Student and Course? This doesn't make any sense in this case. With this primary key, a Student can participate in only one course per semester. 'student_id' and 'course_id' should be defined as primary key! This would also match the Java map definition (the key must be unique, but the same value may be assigned to different keys)
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.05311 seconds