openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pinaki Poddar <ppod...@apache.org>
Subject RE: How to count on a query then reuse this query fetch data?
Date Wed, 25 Nov 2009 19:31:22 GMT

Hi,
  You brave hearts seem to have ventured into Criteria Query. How is it
going?

  On this specific question, how about the following

  CriteriaQuery cq = ... // notice the generic type as Object
  
  cq.select(builder.count(whatever))
  Integer tq = (Integer) em.createQuery(cq).getSingleResult();
  // now change the select list
  cq.select(whatUreallyWant);
  List result = em.createQuery(cq).getResult();

 The downside is you need to cast the results.

 Regards --

Pinaki


Michael Vorburger-4 wrote:
> 
> Hi 周雁鸣,
> 
> CriteriaQuery<User> cq = ...
> TypedQuery<User> tq = em.createQuery(cq);
> 
> tq.setFirstResult(0);
> tq.setMaxResults(10);
> List<User> users = tq.getResultList();
> 
> long count = users.size();
> 
> This will, normally, generate TWO SQL queries - a SELECT {columns} ... and
> a SELECT COUNT(id).
> 
> Ok?
>  
> 
> -----Original Message-----
> From: 周雁鸣 [mailto:zhouyanming@gmail.com] 
> Sent: Monday, November 23, 2009 3:12 AM
> To: users@openjpa.apache.org
> Subject: How to count on a query then reuse this query fetch data?
> 
> CriteriaQuery<User> cq = ...
> TypedQuery<User> tq = em.createQuery(cq);
> 
> long count = count(tq); //howto?
> 
> tq.setFirstResult(0);
> tq.setMaxResults(10);
> List<User> users = tq.getResultList();
> 
> how to implement count function and I can reuse query object to find
> entities.
> 
> ____________________________________________________________
> 
> � This email and any files transmitted with it are CONFIDENTIAL and
> intended
>   solely for the use of the individual or entity to which they are
> addressed.
> � Any unauthorized copying, disclosure, or distribution of the material
> within
>   this email is strictly forbidden.
> � Any views or opinions presented within this e-mail are solely those of
> the
>   author and do not necessarily represent those of Odyssey Financial
> Technologies SA unless otherwise specifically stated.
> � An electronic message is not binding on its sender. Any message
> referring to
>   a binding engagement must be confirmed in writing and duly signed.
> � If you have received this email in error, please notify the sender
> immediately
>   and delete the original.
> 
> 


-----
Pinaki 
-- 
View this message in context: http://n2.nabble.com/How-to-count-on-a-query-then-reuse-this-query-fetch-data-tp4048648p4067146.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Mime
View raw message