Hi,

Like a reported earlier, something goes wrong with count queries.

When I hack some code in BrokerHelper, to get around the first bug (I
don't know if what I do is correct, but I am trying):

    private Query getReportQueryByCriteriaCount(ReportQueryByCriteria
aQuery)
    {
        Query cQuery = (Query) getQueryByCriteriaCount(aQuery);
        ReportQueryByCriteria countQuery = null;

 
if(cQuery.getClass().isAssignableFrom(ReportQueryByCriteria.class))
        {
            countQuery = (ReportQueryByCriteria) cQuery;
        }
        else
        {
            countQuery = (ReportQueryByCriteria)((EnclosingReportQuery)
cQuery).getQuery();
        }

        // BRJ: keep the original columns to build the Join
        countQuery.setJoinAttributes(aQuery.getAttributes());

        // BRJ: we have to preserve groupby information
        Iterator iter = aQuery.getGroupBy().iterator();
        while(iter.hasNext())
        {
            countQuery.addGroupBy((FieldHelper) iter.next());
        }

        return cQuery;
    }

Then i do not get any class cast exceptions anymore.....

But something is still fishy about the counts in combination with
IN-clauses. It looks like the count query has lost its where clauses
when I have IN-clauses in the query.


[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
org.apache.ojb.broker.PersistenceBrokerSQLException:
The root stack trace is -->
* SQLException during execution of sql-statement:
java.sql.SQLException: Not a condition in statement [select count(*)
from (SELECT DISTINCT A0.ID FROM IBANX_PERMIT A0 WHERE null ) ojb_enc]
* sql statement: select count(*) from (SELECT DISTINCT A0.ID FROM
IBANX_PERMIT A0 WHERE null ) ojb_enc
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
* Exception message: Not a condition in statement [select count(*) from
(SELECT DISTINCT A0.ID FROM IBANX_PERMIT A0 WHERE null ) ojb_enc]
        at org.hsqldb.jdbc.jdbcPreparedStatement.executeQuery(Unknown
Source)
* Vendor error code: -106
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown
Source)
* SQL state code: S1000
        at
org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown
Source)
**
        at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown
Source)
        at
org.apache.ojb.broker.util.ExceptionHelper.generateException(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.ReportQueryRsIterator.<init>(Unknown
Source)
        at
org.apache.ojb.broker.util.ExceptionHelper.generateException(Unknown
Source)
        at
org.apache.ojb.broker.core.ReportRsIteratorFactoryImpl.createRsIterator(
Unknown Source)
        at
org.apache.ojb.broker.util.ExceptionHelper.generateException(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(
Unknown Source)
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getReportQueryIteratorF
romQuery(Unknown Source)
        at
org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getReportQueryIteratorB
yQuery(Unknown Source)
        at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown
Source)
        at
org.apache.ojb.broker.accesslayer.ReportQueryRsIterator.<init>(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCount(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCount(Unknown
Source)
        at
org.apache.ojb.broker.core.ReportRsIteratorFactoryImpl.createRsIterator(
Unknown Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCount(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(
Unknown Source)



Greetings,

Roger Janssen
iBanx
*************************************************************************
The information contained in this communication is confidential and is intended 
solely for the use of the individual or entity to  whom it is addressed.You 
should not copy, disclose or distribute this communication without the 
authority of iBanx bv. iBanx bv is neither liable for the proper and complete 
transmission of the information has been maintained nor that the communication 
is free of viruses, interceptions or interference.

If you are not the intended recipient of this communication please return the 
communication to the sender and delete and destroy all copies.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to