QueryLocator Class

Represents the record set returned by Database.getQueryLocator and used with Batch Apex.

Namespace

Database

QueryLocator Methods

The following are methods for QueryLocator. All are instance methods.

  • getQuery()
    Returns the query used to instantiate the Database.QueryLocator object. This is useful when testing the start method.
  • iterator()
    Returns a new instance of a query locator iterator.

getQuery()

Returns the query used to instantiate the Database.QueryLocator object. This is useful when testing the start method.

Signature

public String getQuery()

Return Value

Type: String

Usage

You cannot use the FOR UPDATE keywords with a getQueryLocator query to lock a set of records. The start method automatically locks the set of records in the batch.

Example

System.assertEquals(QLReturnedFromStart.
getQuery(),
Database.getQueryLocator([SELECT Id
   FROM Account]).getQuery() );

iterator()

Returns a new instance of a query locator iterator.

Signature

public Database.QueryLocatorIterator iterator()

Return Value

Type: Database.QueryLocatorIterator

Usage

Warning

Warning

To iterate over a query locator, save the iterator instance that this method returns in a variable and then use this variable to iterate over the collection. Calling iterator every time you want to perform an iteration can result in incorrect behavior because each call returns a new iterator instance.

For an example, see QueryLocatorIterator Class.