-->
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.  [ 8 posts ] 
Author Message
 Post subject: nombre de tuple d'une requête
PostPosted: Mon May 30, 2005 9:17 am 
Regular
Regular

Joined: Mon Apr 25, 2005 5:36 am
Posts: 103
salut

Je voudrais savoir comment on fait pour retourner le nombre de tuples d'une requête.

Je crois que l'on peut le savoir sans exécuter la requête.


merci


Top
 Profile  
 
 Post subject:
PostPosted: Mon May 30, 2005 7:25 pm 
Senior
Senior

Joined: Tue Feb 08, 2005 5:26 pm
Posts: 157
Location: Montréal, Québec - Canada
Qu'entendez-vous par nombre de tuple?
Le nombre de résultats retournés pas la requête?

_________________
Vincent Giguère
J2EE Developer


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 31, 2005 4:34 am 
Regular
Regular

Joined: Mon Apr 25, 2005 5:36 am
Posts: 103
vgiguere wrote:
Qu'entendez-vous par nombre de tuple?
Le nombre de résultats retournés pas la requête?





oui c'est çà.

Je pense que l'on peut savoir ce nombre sans avoir à passer par un parcours d'iterator.

merci


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 31, 2005 11:18 am 
Senior
Senior

Joined: Tue Feb 08, 2005 5:26 pm
Posts: 157
Location: Montréal, Québec - Canada
En effet, vous pouvez utiliser des fonctions d'aggrégations en HQL:
Select count(*) from monEntité etc. etc.

Si vous utilisez l'API Criteria, vous pouvez faire:

criteria = // création de votre requête..
criteria.addProjection(Projections.count("attribute a compter").

Bonne journée,
Vincent Giguère

_________________
Vincent Giguère
J2EE Developer


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 31, 2005 11:39 am 
Regular
Regular

Joined: Mon Apr 25, 2005 5:36 am
Posts: 103
vgiguere wrote:
En effet, vous pouvez utiliser des fonctions d'aggrégations en HQL:
Select count(*) from monEntité etc. etc.

Si vous utilisez l'API Criteria, vous pouvez faire:

criteria = // création de votre requête..
criteria.addProjection(Projections.count("attribute a compter").

Bonne journée,
Vincent Giguère




Je fais du genre comme çà :

String query_total = "select count(*) from DepartementBean";

List list1 = sess.createQuery(query_total)
.list();

int nb_tuple = list1.size();
System.out.println("le nombre de tuple est de : "+nb_tuple);


mais j'ai comme résulalt :1 alors que j'ai plus de 20 enregistrements


pourquoi?


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 31, 2005 12:57 pm 
Newbie

Joined: Wed Dec 15, 2004 10:23 am
Posts: 10
julientarrago wrote:

Je fais du genre comme çà :

String query_total = "select count(*) from DepartementBean";

List list1 = sess.createQuery(query_total)
.list();

int nb_tuple = list1.size();
System.out.println("le nombre de tuple est de : "+nb_tuple);


mais j'ai comme résulalt :1 alors que j'ai plus de 20 enregistrements


pourquoi?


car dans la liste il y a le count et pas le résultat.
tu peux faire un int nb_tuple = list1.get(0);

Jer.


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 31, 2005 2:00 pm 
Senior
Senior

Joined: Tue Feb 08, 2005 5:26 pm
Posts: 157
Location: Montréal, Québec - Canada
Quand tu utilises une fonction d'aggrégation, tu devrais utiliser uniqueResult() et non pas list().

Ainsi, ton code devrait être:
Code:
String query_total = "select count(*) from DepartementBean";
int nb_tuple = sess.createQuery(query_total).uniqueResult().intValue(); //uniqueResult() va te retourned un objet de type Integer
System.out.println("le nombre de tuple est de : "+nb_tuple);

_________________
Vincent Giguère
J2EE Developer


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 01, 2005 5:06 am 
Regular
Regular

Joined: Mon Apr 25, 2005 5:36 am
Posts: 103
vgiguere wrote:
Quand tu utilises une fonction d'aggrégation, tu devrais utiliser uniqueResult() et non pas list().

Ainsi, ton code devrait être:
Code:
String query_total = "select count(*) from DepartementBean";
int nb_tuple = sess.createQuery(query_total).uniqueResult().intValue(); //uniqueResult() va te retourned un objet de type Integer
System.out.println("le nombre de tuple est de : "+nb_tuple);



j'ai presque fait comme tu m'as dit:


String query_total = "select count(*) from DepartementBean";
Integer nb_tuple = (Integer)sess.createQuery(query_total)
.uniqueResult();

int nb1 = nb_tuple
.intValue();
//uniqueResult() va te retourned un objet de type Integer
System.out.println("le nombre de tuple est de : "+nb_tuple);

Ton truc ne passait pas directement

merci de l'aide


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