Bonjour à tous,
J'ai la table suivante :
Dans laquelle, je peux avoir plusieurs lignes pour le même enseignant (si il donne plusieurs cours) et plusieurs ligne pour la même classe (si elle comporte plusieurs cours)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE teachers_courses_classes ( teacher INTEGER NOT NULL, course INTEGER NOT NULL, class INTEGER, CONSTRAINT UN_teachers_courses_classes_course_class UNIQUE (course, class), CONSTRAINT UN_teachers_courses_classes_teacher_course_class UNIQUE (teacher, course, class), CONSTRAINT FK_teachers_courses_classes_teachers_teacher FOREIGN KEY (teacher) REFERENCES teacher (uid), CONSTRAINT FK_teachers_courses_classes_teachers_courses FOREIGN KEY (course) REFERENCES courses (id), CONSTRAINT FK_teachers_courses_classes_teachers_classes FOREIGN KEY (class) REFERENCES classes (id) );
Je me retrouve donc avec des lignes comme :
prof 0; cours 4; classe 56
prof 0; cours 4; classe 57
prof 0; cours 5; classe 56
prof 1; cours 5; classe 57
prof 1; cours 7; classe 57
Jusque la tout est normal. Mais avec le mapping suivant :
J'obtiens une collection de classe dans laquelle se trouve des doublons étant donné qu'il y à plusieurs fois l'association entre une prof et une classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <bag name="classes" lazy="false" table="teachers_courses_classes"> <key column="teacher"/> <many-to-many column="class" class="be.gervaisb.ages.SchoolClass" /> </bag>
L'dela serais de grouper en prenant en compte la clef du cours mais je ne vois pas comment signaler celà dans mon mapping.
Merci pour votre aide.
Partager