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.



Répondre avec citation
Partager