Hibernat HQL

johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012 - 1 juin 2011 à 17:49
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012 - 5 juin 2011 à 16:11
Bonjour je souhaie votre aide je suis débutant en hibernat surtout langage HQl
J’ai deux classe Article et VoteArticle

La classe Article
public class Article {
public int id;
private List<VoteArticle> listvoteArticle;
&#8230;&#8230;
}


Mapping

   <list fetch="join" lazy="false" name="listvoteArticle">
      <key column="listvoteArticle_ID"/>
      <list-index column="IDXvote"/>
      <one-to-many class="beans.VoteArticle"/>
    </list>



Pour la classe VoteArticle
Public  class VoteArticle {
private int id;
private int  nbJaime;
&#8230;.
}


Je souhaite sélectionner les article et ordonne les enregistrements trouvés dans l'ordre décroissant de leur valeur pour le champ NBJAIME qui existe dans classe VoteArticle
Voici La requet sql

select * from ISALAAAAMCHENOSOUAMA.TVOTEARTICLE , TARTICLE where TVOTEARTICLE.LISTVOTEARTICLE_ID=TARTICLE.ID  ORDER BY NBJAIME DESC;



Mais j’ai essaie de traduire en langage HQL toujours il y a des problème .
Je souhaite votre aide
merci

5 réponses

shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
3 juin 2011 à 09:44
En HQL on requete les mapping des objets et non la la base de données .


je n'éi pas ton mapping, j'ai supporsé que Article.id = VoteArticle.id


select a.* from Article a, VoteArticle va where va.id=a.id order by va.nbJaime desc


si tu fais select * from Article a, VoteArticle ...
ton résultat sera un tableau d'objet et c'est plutôt crade.
0
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012
3 juin 2011 à 12:23
bonjour
merci de votre aide
j'ai teste mais ca marche pas
 List<Object> listArticlePlusVoter =new ArrayList<Object>();


Query query =session.createQuery("from Article a, VoteArticle va where va.id=a.id order by va.nbJaime desc");



le resultat
[[Ljava.lang.Object;@25c37603, [Ljava.lang.Object;@4378d253]


même j'ai défini la méthode toString()

il y a une relation un vers plusieurs entre article et voteArticle
je souhaite pas where va.id=a.id
je souhaite
where va.id=a.listvoteArticle
parce que dans la table voteArticle il y a un champ listvoteArticle_ID il référence id Article
voir fichier de mapping dans message précédent


merci
merci mon chef
0
shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
3 juin 2011 à 13:10
ok cela devrai donc suffire :

from Article a order by a.listvoteArticle.nbJaime desc
0
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012
3 juin 2011 à 19:07
bonjour

merci de votre réponse
j'ai test mais ca marche pas
erreue
exception

javax.servlet.ServletException: org.hibernate.TypeMismatchException: left and right hand sides of a binary logic operator were incompatibile [integer : java.util.List(beans.Article.listvoteArticle)]

root cause

org.hibernate.TypeMismatchException: left and right hand sides of a binary logic operator were incompatibile [integer : java.util.List(beans.Article.listvoteArticle)]




en tous les cas merci de votre reponse

merci mon chef
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
johnjjj Messages postés 120 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 24 septembre 2012
5 juin 2011 à 16:11
merci mon chef

j'ai trouve la sollution


listArticlePlusVoter=session.createQuery("from Article v  LEFT JOIN FETCH v.listvoteArticle w  order by w.nbJaime desc ").list();




merci
0
Rejoignez-nous