Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: Criteria et recuperation de bag
PostPosted: Mon Apr 18, 2011 3:33 am 
Newbie

Joined: Mon Apr 18, 2011 3:03 am
Posts: 5
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 :

Code:
<?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 la classe :

Code:
    [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; }
}


Voici mon code criteria qui ne fonctionne pas :( :

Code:
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();


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.

C'est la que je cale, si quelqu'un aurait quelques informations...

Merci d'avance !!

Bye


Top
 Profile  
 
 Post subject: Re: Criteria et recuperation de bag
PostPosted: Thu Apr 21, 2011 3:54 am 
Newbie

Joined: Mon Apr 18, 2011 3:03 am
Posts: 5
UP


Top
 Profile  
 
 Post subject: Re: Criteria et recuperation de bag
PostPosted: Fri Apr 22, 2011 6:07 am 
Newbie

Joined: Mon Apr 18, 2011 3:03 am
Posts: 5
En faite ce n'est pas possible car une projection est forcement constituée d'une seule requête. Je pense que c'est possible en utilisant les sous requêtes mais je n'ai pas encore réussi :(, si quelqu'un aurait quelque chose à rajouter... une idée...


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.