Hollow Objects and Prefetches
In a fully transparent persistence system you have to be able to access any of your objects at any time without writing the code for loading it. To implement this effectively NDO works with the concept of hollow objects. These objects consist of the ObjectId only and don’t have data or child objects. If a field of such an object is accessed, NDO reloads the data; if the field is a relation field the child objects are loaded as hollow objects again. That way we don’t need to load a complete object tree with a query to have child objects available in memory. Objects and object data are only loaded if needed. This technique is also called »Lazy Loading« or »On-Demand Loading«.