-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: probleme de retour de requette avec des projections
PostPosted: Thu Nov 25, 2010 9:58 am 
Newbie

Joined: Tue Sep 13, 2005 12:24 pm
Posts: 5
Location: paris
Bonjour,

j'ai une table produit sur laquelle je souhaite récupère un sous ensemble de champs

j'ai donc cette commande avec criteria, je vous fait grâce des conditions :-) :
Code:
Criteria criteria = getSession().createCriteria(ProduitBO.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.property("typeGfr"));
projectionList.add(Projections.property("familleProduit"));
criteria.setProjection(Projections.distinct(projectionList));
criteria.setFirstResult(first);
criteria.setMaxResults(maxResults);
criteria.list();

le résultat se traduit par cette requête que je récupère dans le console :
Code:
select * from ( select distinct this_.TYPE_GFR as y0_, this_.FAMILLE_PRDT_ID as y1_ from PRODUIT this_ )
where rownum <= 3

ce qui me donne dans TOAD le résultat suivant, qui me va bien :
Code:
Y0_  , Y1_
EPRT , 0
EPRT , 1
EPRT , 3

mon problème est que je n'ai pas en retour un objet de type ProduitBO et je ne sais comment exploité cette liste, pourtant elle n'est pas vide.

merci de votre aide j'espère avoir été clair.


Top
 Profile  
 
 Post subject: Re: probleme de retour de requette avec des projections
PostPosted: Thu Nov 25, 2010 11:42 am 
Newbie

Joined: Tue Sep 13, 2005 12:24 pm
Posts: 5
Location: paris
J'ai trouver donc je répond pour les autres qui galère.

il faut faire a la main :
Code:
List<Object> rows = criteria.list();
List<IProduitBO> maListe = new ArrayList<IProduitBO>();
for(Object r: rows){
  Object[] row = (Object[]) r;
  logger.debug("\n row.length : " + row.length);
  IProduitBO produitBO = new ProduitBO();
  produitBO.setTypeGfr(row[0].toString());
  produitBO.setFamilleProduit((IFamilleProduitBO) row[1]);
             
  maListe.add(produitBO);
}


bien sur pour mon cas j'ai dans mon objet plus de 2 item donc il faut tous se les taper un par un, c'est long mais ca marche.

a+


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 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.