# The ORM defers database calls for performance

The ORM tries to be as "lazy" as possible; its basic stance is to avoid loading any data from the DB until the last possible moment. Let's use the following example to describe how the data is only loaded at last moment possible:

    			BatchControl someBatchControl = batchControlId.getEntity();
    			BatchControlParameters parms = someBatchControl.getParameters();
    			for (BatchControlParameter each : parms) {
    			String name = each.getBatchParameterName();
    			}

In the above example, the `getEntity()` call only retrieves the parent ID as a proxy. The `someBatchControl` is not fully "hydrated" until some other property is accessed. "Hydrating Entities" is the process of taking a row from the database and turning it into an entity.

The `getParameters()` call only retrieves the child IDs, again as proxies.

Only when the getBatchParameterName() is called, is a row (the child row) actually retrieved.

Parent topic: Object-Relational Mapping: Background