Bonjour à tous,

J'ai la table suivante :
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)
);
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)

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 :
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>
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.

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.