BTW, you may also look at the new EJBQLQuery in Cayenne 3.0. M1
supports only the simplest SELECT queries, while the upcoming M2
supports 99% of the JPA mandated syntax. While this is somewhat of a
bleeding edge, it should simplify custom aggregate queries
significantly.
http://cayenne.apache.org/doc/ejbqlquery.html
Andrus
On Oct 9, 2007, at 5:21 PM, David Marko wrote:
> Thanks, its really what I needed.
>
> The reason why I asked is as follow. The EntityManager for Cayenne
> (my previous
> post) offers aggregate functions (count, sum, average, max). To
> accomblish this
> I created SelecteQuery e.g. q="SELECT COUNT(*) as count, $name as
> name FROM
> ROLE GROUP BY $name"; for queries with 'where' constrains I use
> special Query
> syntax(wrapper for cayenne expression) and I need the 'where'
> clause to be put
> into manualy created 'select count(*) .... ' query. Not easy to
> explain without
> detailed code though.
>
> // and this is how I call it: em is EntityManager
> List<DataRow> li= em.count(Item.class, Item.NAME_PROPERTY,
> Query.where("year >
> $year").addParam("year", 2003));
>
> // or sum
> List<DataRow> li= em.sum(Item.class, Item.PROFIT_PROPERTY,
> Item.PRODUCT_NAME_PROPERTY, Query.where("year > $year").addParam
> ("year", 2003));
>
>
> David
>
> Michael Gentry wrote:
>> Will:
>>
>> Expression exp = sq.getQualifier();
>> String clause = exp.toString();
>>
>> do what you are wanting?
>>
>>
>> On 10/9/07, David Marko <dmark..iscali.cz> wrote:
>>> Hello, I need to create a select query that have some parameters
>>> and I need to
>>> get SQL where statement from it containing replaced parameters.
>>> (see snippet
>>> below) . Is there any way how to accomplish this?
>>>
>>>
>>> [Code snippet]
>>> SelectQuery sq = new
>>> SelectQuery(Role.class,Expression.fromString(this.whereClause));
>>> return sq.queryWithParameters(params);
>>>
>>
>
>
This archive was generated by hypermail 2.0.0 : Tue Oct 09 2007 - 10:28:58 EDT