Re: Record counts...

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Jun 14 2005 - 17:13:09 EDT

  • Next message: Joshua Pyle: "Re: problem deploying cayenne-web app tutorial on sun app server"

    Oh yeah, and as Mike pointed out you should call

      query.setFetchingDataRows(true);

    To tell Cayenne that the fetch result shouldn't be converted to DataObjects.

    Andrus

    > No, SQLTemplate is actually used to run arbitrary SQL. In some cases the
    > result can be mapped to an entity, but in most it will be just that - a
    > list of Map objects with each Map corresponding to a result set data. So a
    > count query would look like this:
    >
    > String sql = "SELECT COUNT(*) FROM SOME_TABLE"
    > DataMap queryRoot =
    > context.getEntityResolver().getDataMap("data_map_name");
    > SQLTemplate query = new SQLTemaplate(queryRoot, sql, true);
    > Map singleRow = (Map) context.performQuery(query).get(0);
    > Number count = (Number) singleRow.values().next();
    >
    > As this is a bit too verbose, 1.2 will likely encapsulate this code in a
    > generic utility class. For now you can create your own.
    >
    > Andrus
    >
    >
    >
    >> I read through that documentation, but it doesn't really appear to do
    >> anything different then the normal SelectQuery besdies being able to
    >> write it in SQL. I was wanting to do something like SELECT COUNT(*)
    >> FROM Object and just got the int result, with out loading all the
    >> child records etc.
    >>
    >> Just reading the docs there it doesn't appear to let me do something
    >> like
    >> that.
    >>
    >> -Nick
    >>
    >> On 6/14/05, Mike Kienenberger <mkienen..laska.net> wrote:
    >>> Nick Stuart <nicholas.stuar..mail.com> wrote:
    >>> > This should be an easy one. I basically just want to find out how
    >>> many
    >>> > objects of a certain type there are. Easy to do with a SelectQuery
    >>> and
    >>> > user List.size() but does the cause any kind of performance issues?
    >>> > Just thinking if these objects have child objects, which has more
    >>> > child objects, will it pull all those when I Select the parent?
    >>>
    >>> If you only want the count and don't want to load any objects, just use
    >>> SQLTemplate.
    >>>
    >>> http://www.objectstyle.org/cayenne/userguide/fetch/sqltemplate.html
    >>>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Tue Jun 14 2005 - 17:13:10 EDT