or something like this:
...
String sql = "select count(*) as total_clicks from user_clicks " +
" where user_id = #bind( $userId, 'VARCHAR')";
SQLTemplate sqlTemplate = new SQLTemplate( UserClick.class, sql);
sqlTemplate.setParameters(params); //params defined elsewhere
sqlTemplate.setFetchingDataRows(true);
List res = BaseContext.getThreadObjectContext().performQuery( sqlTemplate);
return ((Integer) ((Map) res.get(0)).get("total_clicks")).intValue();
}
it works :)
-florin
On 18-Apr-10, at 12:43 , Joe Baldwin wrote:
> Arnaud,
>
> If I understand you, I think you want to do this in the code and not the modeler?
>
> Here is a simple code fragment for a like-ignore-case qualifier:
>
> String substring = "Martin";
> ObjectContext oc = BaseContext.getThreadObjectContext();
> Expression exp = ExpressionFactory.likeIgnoreCaseExp(Product.NAME_PROPERTY, ("%" + substring + "%"));
> SelectQuery query = new SelectQuery(Product.class, exp);
> List list = oc.performQuery(query);
> System.out.println("\ncount: " + list.size());
>
> This is pretty efficient and to my knowledge does not trigger any DataObject faults. There are a few other ways to do this depending on your design. The ExpresionFactory has a lot of powerful methods to help you out.
>
> Joe
>
>
>
>
> On Apr 18, 2010, at 12:15 PM, Arnaud Garcia wrote:
>
>> Hello,
>>
>> I am not sure how to create a select count(*) in the modeler when I need to
>> pass a parameter ?
>> I downloaded the petstore example, and it seems that I have to create a "Raw
>> SQL" Query, and directly write my select count(*)...
>>
>> =>but how to I had my parameter in my SQL ?
>>
>> ... then I suppose I can do ctxt.performQuery("myCount",params,true) ?
>>
>> thanks for help for this beginner question...
>>
>> Arnaud
>
This archive was generated by hypermail 2.0.0 : Sun Apr 18 2010 - 12:59:58 EDT