j'utilise NHibernate 1.0.x assimilable a Hibernate 2.1.
Classes :
Code:
public class Personne {
public int Id;
public string Nom;
}
public class Individu extends Personne {
public string Prenom;
}
Mapping :
Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" >
<class name="Personne" table="T_PERSONNE_PERS" >
<id name="Id" column="PERS_ID" type="Int32">
<generator class="sequence">
<param name="sequence">GEN_PERS_ID</param>
</generator>
</id>
<property name="Nom" column="PERS_NOM" type="String" />
<joined-subclass name="Individu" table="T_INDIVIDU_IND" >
<key column="PERS_ID"/>
<property name="Prenom" column="IND_FIRST_NAME" />
</joined-subclass>
</class>
</hibernate-mapping>
et le code appelant
Code:
//...
ICriteria vCriteria = Session.CreateCriteria(typeof(Personne));
vCriteria.Add(Expression.Or(Expression.Eq("Nom", "toto"), Expression.Eq("prenom", "titi")));
IList vResultats = vCriteria.List();
//...
Avec Session.CreateCriteria() sur la classe Personne, il me dit qu'il ne connait pas la pas la propriété Prenom.
Pourtant (grâce au polymorphisme), si je lui demande que des Personnes avec Nom = "toto", il me retournera aussi bien les personnes que les individus ayant ce nom.
Pourquoi un test "polymorphique" n'a pas l'air fonctionné ?
Est-ce possible ?
Comment faire ?
Merci d'avance.