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:45:38 EDT