hi christoph,

what do you mean by 'crash' ? could you please post the exception.

jakob

Christoph Hermann schrieb:
Hello,

i'm having Problems when retrieving Results with a Reportquery.
I set the max number of results to 10 and on the 9th row my loop crashes (because in the database there are only 8 rows).
I would expect ojb to only return 8 Rows.


Code snippet:

var crit = new Packages.org.apache.ojb.broker.query.Criteria();
crit.addEqualToField("logs.menuLinkId","id");
var q = new Packages.org.apache.ojb.broker.query.ReportQueryByCriteria(Packages.nymphoon.MenuLink, crit);
var attributes = new Array(3);
attributes[0] = "logs.menuLinkId";
attributes[1] = "count(*)";
attributes[2] = "name";
q.setAttributes(attributes);
q.addGroupBy("logs.menuLinkId");
q.addGroupBy("name");
q.addOrderByDescending("count(*)");
q.setEndAtIndex(10);
dao.begin();
var it = dao.getReport (q);
while ( it.hasNext() ) {
var o = it.next(); // crash
suggestions.add(o);
}
dao.commit();



The while loop crashes after the 8th Element.
An Iterator of Type broker.accesslayer.PagingIterator (it) is instanciated correctly.
I thought that if there are only 8 Rows it.hasNext() would return false?


I could add a try/catch in the inner loop, but i don't think this is a good solution.
Can anyone help me with this?


The loop works fine when i set "q.setEndAtIndex(5);" i.e.

Christoph

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



Reply via email to