That sounds logical. So if I limit my sort ordering to the initial
query then the objects in pages 2-n will remain hollow?
(I have a few instances in which there is sort ordering by the client
(which is post query - resultset ordering). I will have to take a
look at this design to implement this rule better.)
Thanks,
Joe
On Jun 16, 2009, at 1:45 PM, Andrey Razumovsky wrote:
> The trick of paginated query is that all objects returned are
> HOLLOW, thus
> having only identifier. Ordering.orderList will surely resolve *all*
> records, how else would it know parameters of each object. To order
> a long
> list properly you need to set ordering to a query:
>
> query.setPageSize(RowsPerPage);
> query.addOrdering(order);
> List orderedResults = context.performQuery(query);
>
> 2009/6/16 Joe Baldwin <jfbaldwi..arthlink.net>
>
>> This is a question concerning making performance enhancements with
>> Cayenne
>> directives.
>>
>> Lets say you use the following SelectQuery method
>>
>> query.setPageSize(RowsPerPage);
>>
>> But then you decide to sort order the result list using
>>
>> Ordering order = new Ordering(<entity>.<attribute>_PROPERTY,
>> true);
>> order.orderList(resultList);
>>
>> If I understand the docs, then the purpose of setting the PageSize
>> parameter is to reduce the work load (and increase performance) by
>> limiting
>> fetching to the first "RowsPerPage" amount of data-objects.
>>
>> I am wondering whether performing a sort ordering on the resultList
>> triggers *all* the page and object faults. If I am correct then sort
>> ordering would render setPageSize moot in this scenario.
>>
>> Is my analysis correct or has Cayenne somehow avoided this? (Or is
>> there
>> another way to do sort ordering?)
>>
>> Joe
>>
>>
>>
This archive was generated by hypermail 2.0.0 : Tue Jun 16 2009 - 13:59:14 EDT