Bonjour,
En ce moment je suis en train d'essayer de récupérer seulement certains champs particuliers d'une classe/table.
Pour se faire j'utilise Criteria avec les projections.
Voici le mapping de la classe/table dont je veux récupérer certaines données :
Voici la classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false"> <class name="Business.Model.Origination.OrigineElement, Business.Production" table="SystemTableOrigination.TElementOrigine" > <cache usage="read-write" /> <id name="Id" column="Id" type="System.Int32" unsaved-value="0"> <generator class="native"/> </id> <property name="Number" column="Numero" not-null="true" type="System.String"/> <property name="Description" column="Description" not-null="false" type="System.String"/> <property name="Observation" column="Observation" not-null="false" type="System.String"/> <property name="Poids" column="Poids" type="System.String" not-null="false"/> <property name="Dvd" column="CDDVD" type="System.String" not-null="false"/> <bag name="DonorTaker" lazy="false" inverse="true"> <key column="ElementOrigineId"/> <one-to-many class="Business.Model.DonorTaker.DonorTaker, Business.Production"/> </bag> </class> </hibernate-mapping>
Voici mon code criteria qui ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 [DataContract] public class OrigineElement : Business.Model.Production.Common.EntityBase, IElement { [DataMember] public virtual string Number { get; set; } [DataMember] public virtual string Description { get; set; } [DataMember] public virtual string Observation { get; set; } [DataMember] public virtual IList<Business.Model.DonorTaker.DonorTaker> DonorTaker { get; set; } [DataMember] public virtual string Poids { get; set; } [DataMember] public virtual string Dvd { get; set; } }
Alors le resultat me retourne bien un objet avec le bon numéro, la bonne déscription par contre ma liste d'objet de type DonorTaker est null alors quelle devrait contenir plusieurs objet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ICriteria crit = session.CreateCriteria(OrigineElement) .Add(Projections.Alias(Projections.Property("Number"), "Number")) .Add(Projections.Alias(Projections.Property("Description"), "Description")) .Add(Projections.Alias(Projections.Property("DonorTaker"), "DonorTaker")) .Add(Restrictions.Eq("Id", "50")); crit.SetResultTransformer( new NHibernate.Transform.AliasToBeanResultTransformer(OrigineElement)); result = (OrigineElement)crit.UniqueResult();
C'est la que je cale, si quelqu'un aurait quelques informations...
Merci d'avance !!
Bye
Partager