Transparent Object Persistence
At this point transparent object persistence comes into play. It allows storing the status of objects and the relations between them. You don't need any code to reload the objects. It happens automatically and is invisible. That’s why it is called transparent persistence.
The concept has existed for a while now. But it has reached new dimensions with the intermediate code technologies in .NET and Java. Enhancers add additional functionality to the generated components. This allows a persistence system to keep track of all access to our persistent objects. For example, if a variable holding a relation is »touched« by the code, the data will be loaded automatically if it is not yet there. If a persistent field is changed, the object can be marked as PersistentDirty to make sure it will be written to the database during the next save.
The term »transparent« is intentionally used instead of »invisible«. There are aspects of persistence which need to be visible, for example the search for objects according to certain criteria or transaction management.