jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gadbury <gadb...@googlemail.com>
Subject NodeIterator.getSize() returns -1 for query with order by clause
Date Wed, 14 Apr 2010 08:13:48 GMT

Hi all,

I have the following the code:

		QueryManager qm = jcrSession.getWorkspace().getQueryManager();

		String queryString = 	"select * from [my:order] as order " +
								"left outer join [my:orderItem] as orderElement on
orderElement.[orderUUID] = order.[jcr:uuid] " + 
								"left outer join [my:product] as product on
orderElement.[productUUID] = product.[jcr:uuid] " +
								"where product.[providerUUID]='" + providerUUID + "' " +
								"order by order.[jcr:created] asc";
		Query query = qm.createQuery(queryString, Query.JCR_SQL2); 
		QueryResult queryResult = query.execute();

		NodeIterator nodeIterator = queryResult.getNodes();

		long totalSize = nodeIterator.getSize();
		int anotherTotalSize = ((QueryResultImpl)queryResult).getTotalSize();

totalSize and anotherTotalSize both equal -1 even though I specify an order
by clause.  As far as I understood, specifying an order by clause should
cause the full result set to load and nodeIterator.getSize() should not read
-1.  In an example, I later iterate over the nodeIterator and it has three
my:order nodes, so getSize should be 3.

Does anyone know why getSize is returning -1 in this case?

Is there a quicker way to get the size of the result set?  Perhaps iterate
through the nodeIterator and do my own count?

Thanks and kind regards,

View this message in context: http://n4.nabble.com/NodeIterator-getSize-returns-1-for-query-with-order-by-clause-tp1839436p1839436.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.

View raw message