A software module, or set of modules, for creating or maintaining transparent persistence of a member selected from the group consisting of a data object, an object graph model and a portion of an object graph model when a user of the system is creating, maintaining, accessing or navigating complex data objects as a CDOG model, comprising:
- i) a software module for creating a set of definitions for the relationships between a data source schema and objects capable of storing data for an object language application, wherein the software module is capable of causing the storage of the set of definitions in a repository;
- ii) a software module for creating and accessing a set of definitions for the relationships between objects for an object language application, wherein the software module is capable of causing storage of the set of definitions in a navigation model;
- iii) a software module providing an input means for a member selected from an object name, a list of objects, or a set of objects that are to be persisted, wherein the software module is capable of capable of causing the storage of the input as part of a navigation model that can be access by ii);
- iv) a software module containing the programming logic to persist an object or set of objects based upon access to (a) a set of definitions for the relationships between a data source schema and objects capable of storing data for an object language application, (b) a set of definitions for the relationships between objects for an object language application, and (c) an object name, a list of objects, or a set of objects that are to be persisted, and
- v) a software module having an input method capable of informing iv) of the location of information relating to iv)(a), iv)(b) and iv)(c).