Bonjour à tous,
J'ai la table suivante :
Code:
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 :
Quote:
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:
<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'ideal 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.