# Maintenance List Filters

A given list on a maintenance may not need to return all the data in the list. Instead, a filter can be applied to return a subset of the data. You get the main list by default.

You can modify the SQL that will be used for the list retrieval by writing an HQL to filter the list. This HQL goes into the `@List` annotation's `fromClause` and `whereClause` properties. This is written as an HQL filter HQL, where the main table (and its language alias, if there is one) already exists in the background, and can be referenced by the alias `this` (and `thisLang` for the language row).

New entities can be added to the from clause, and a where clause can be specified. However, a select clause should not be specified; instead, results can be added in the `bindList` user exit (see below). And neither should be an order by (the order by is to be specified separately).

Additionally, if there are extra values that can be retrieved via a join, the loose data fields can be specified as `@ListDataField`, with an `hqlPath` property specifying the hql path to select the result.

Finally, you can bind parameters and also specify extra results into the query in the `bindList` user exit specific for the given list.

Parent topic: Maintaining Maintenance Classes for MOs