By default, lazy-loaded query result sets contain only repository IDs. If the required data is limited to a few properties, and those properties belong only to the primary table, you can modify lazy-loaded caching by embedding preloading hints in the RQL statement. The result set that is lazy-loaded into the cache includes those properties together with repository IDs

For example, the following RQL specifies to lazy-load the login property:

RepositoryView view = repository.getView("user");

// to display only logins, preload the login property
RqlStatement statement =
   RqlStatement.parseRqlStatement("firstName = ?0 PROPERTY HINTS login");

Object params[] = new Object[1];
params[0] = "Maria";

RepositoryItem [] items = statement.executeQuery (view, params);

You can also use the interface atg.repository.Repository to embed preloading hints in a query programmatically. The following code excerpt is equivalent to the RQL example shown above:

// Somehow, get the repository
Repository rep = getRepository();
RepositoryItemDescriptor desc = rep.getItemDescriptor("user");

// RepositoryView is a ParameterSupportView, so it supports parameters in queries
// This assumes advanced knowledge that the view is an instance of a
// ParameterSupportView
ParameterSupportView view = (ParameterSupportView)desc.getRepositoryView();
QueryBuilder qb = view.getQueryBuilder();

// firstName = 'Maria'
QueryExpression firstNameProp = qb.createPropertyQueryExpression("firstName");
QueryExpression parameterValue = qb.createParameterQueryExpression();
Query firstNameQuery = qb.createComparisonQuery
                       (firstNameProp, parameterValue, QueryBuilder.EQUALS);

// arguments
Object[] args = new Object[1];
args[0] = new String("Maria");

// preload "login" property in order to display it without loading full items
String [] precachedProperties = new String[1];
precachedProperties[0] = "login";
QueryOptions options = new QueryOptions(0, -1, null, precachedProperties);

RepositoryItem[] mariaItems = view.executeQuery(firstNameQuery, options, args);
loading table of contents...