Bonjour à tous.
J'ai un "problème" avec NHibernate ou avec ma vision de la POO , ou je ne sais pas trop mais avec mon chef dans l'estimation de mes charges à coup sûr !
Voici mon problème :
J'ai une classe mère : ClasseMère {ID, LABEL}.
Deux classes filles qui hérite de la classe mère : ClasseFille1 {}, ClasseFille2 {DIVERS}.
(Les attributs des classes sont entre {})
J'ai fais le mapping de ce genre de chose sous NHibernate à de nombreuses reprises. Ca fonctionne très bien !
Maintenant, mon besoin a changé... Un objet de ClasseFille1 identifié par ID de ClasseMère peut également être un objet de ClasseFille2 (également identifié par ID).
Je me retrouve en base avec des choses de type :
oClasseMère { ID=1, LABEL="TOTO" }
oClasseFille1 { ID = 1 }
oClasseFille2 { ID = 1 , DIVERS = "TEST" }
Les objets de ClasseFille2 peuvent donc être des objets de ClasseFille1 et les objets de ClasseFille1 peuvent être des objets de ClasseFille2. Dans mon code j'aurais deux listes de type ClasseFille1 et ClasseFille2 ou je n'aurais qu'à comparer les IDs pour savoir si un objet "ClasseMère" est des deux types.
Ca fonctionne bien, sauf lorsque NHibernate charge le premier élément de la seconde liste commun avec la première.
:/"Object with id: 16 was not of the specified sublcass: ClasseFille2 (loading object was of wrong class [ClassFille1])"
Une idée ?
Partager