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 <jfbald...@earthlink.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
>
>
>

Reply via email to