Re: Create count(*) query based on SelectQuery

From: Andrey Razumovsky (razumovsky.andre..mail.com)
Date: Wed Jan 20 2010 - 13:31:41 EST

  • Next message: Andrey Razumovsky: "Re: ParseException in EJBQL statement with upper function"

    Here's and (old) version of my CountHelper class that automatically creates
    COUNT statements for SelectQuery. I used to do same for EJBQL, but that was
    much harder.
    http://osdir.com/ml/user-cayenne-apache/2009-09/msg00012.html

    2010/1/20 Andreas Hartmann <andrea..pache.org>

    > Hi everyone,
    >
    > I'm mainly using SelectQuery queries, built using quite a complex
    > programmatic infrastructure. But now I have the requirement to obtain the
    > total number of rows (to set the Content-Range header in a REST service).
    >
    > So basically I have a SelectQuery which does
    >
    > SELECT … FROM foo WHERE <whereClause> LIMIT … OFFSET …;
    >
    > and I need
    >
    > SELECT count(*) FROM foo WHERE <whereClause>;
    >
    > Is there a straightforward way to build such a query based on the
    > SelectQuery's expression? I tried Expression.toEJBQL() but faced a couple of
    > problems which have already been described on this list (e.g. the
    > likeIgnoreCase issue).
    >
    > Do I really have to build a string-based SQL or EJBQL query from scratch?
    >
    > Thanks a lot for any hints!
    >
    > Best regards,
    > Andreas
    >
    >
    >
    > --
    > Andreas Hartmann, CTO
    > BeCompany GmbH
    > http://www.becompany.ch
    > Tel.: +41 (0) 43 818 57 01
    >
    >

    -- 
    Andrey
    



    This archive was generated by hypermail 2.0.0 : Wed Jan 20 2010 - 13:32:39 EST