When a list is too large to send to the UI in one shot, there is the ability to get more rows.
An @List can simply have its order set (separate from any other Maintenance List Filter properties). Everything else is automated by the FW. There is no need to add special LAST_ fields to the annotation/service, nor even to add the parent's PKs.
The order of a maintenance's list can be given in two ways:
orderBy
,
written in hql form, using the special entity alias this
to refer
to the row (and thisLang
to refer to the language row if one
exists), and including any other aliases available from the
fromClause
property.The list will retrieve rows in chunk sizes given by the size property on the @List annotation.
An example of using this filtering to join extra information is available on the class MaintenanceObjectMaintenance
. Another example on a ListService
, is available on the class NavigationOptionMenuList
.
Besides using a MaintenanceListFilter and knowing how to deal with list get mores, lists
in a page maintenance will automatically retrieve (and cache) the language row
associated with the main row of the list. This helps the n+1 select problem (only a
single SQL is issued, instead of the main one, plus an extra one for each of the rows'
language row), and also provides the ability to have shorthand for the
orderBy
property of a list. If the order is simply by a language
property, then you can reference it by thisLang.property
, without
having to supply a filterClause
.