Re: count(*) with parameter

From: Florin T.PATRASCU (flo..ogers.com)
Date: Sun Apr 18 2010 - 12:59:16 EDT

  • Next message: Galia Yer: "Tutorial Persistent Objects"

    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