db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Fox <Thomas....@seitenbau.net>
Subject RE: SummaryHelper not setting replacements
Date Wed, 12 Jun 2013 06:59:24 GMT
|---------------------------------------------------------------------------------------------------------------------------------------------------->
|Jay Bourland wrote:                                                                     
                                                           |
|---------------------------------------------------------------------------------------------------------------------------------------------------->
  >---------------------------|
  | An:                       |
  >---------------------------|



> I'm trying to convert an old Torque site to version 4. I'm running
> into a problem with using a count() function. The code looks like this:
>
>       Criteria crit = getCriteriaDogsWithAllTitles( titles, year );
>
>       SummaryHelper summary = new SummaryHelper();
>
>       summary.addAggregate( "count", new Count( DogPeer.DOG_ID ) );
>       List<ListOrderedMapCI> results = summary.summarize( crit );
>
> When summarize() is executed, I get a
> "jdbc4.MySQLSyntaxErrorException: You have an error in your SQL
> syntax" exception. The Criteria is good and works fine with a
> doSelect(). It appears that the summarize converts the Criteria to a
> string without adding in the replacements for the parameters in the
> prepared statement.

Can you please provide an example how you construct a crit which fails ?

> Also, if I take the string from the
> queryStatement and replace the '?' with values, the statement runs
> fine from an interactive MySQL session. When I compare the code in
> SummaryHelper.summarize() to BasePeerImpl.doSelect() the code to set
> the replacements is present in doSelect but not in summarize.
>
> What's the best way to report this?

Please file a jira issue at

https://issues.apache.org/jira/browse/TORQUE/

As a workaround, you can try
       crit.addSelectColumn(new org.apache.torque.util.functions.Count
("*"));
       int count = SomePeer.doSelectSingleRecord(crit, new
org.apache.torque.om.mapper.IntegerMapper());

instead of
       summary.addAggregate( "count", new Count( DogPeer.DOG_ID ) );
       List<ListOrderedMapCI> results = summary.summarize( crit );

    Thomas


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Mime
View raw message