Patent ID: 7676493

Claim:
A system that facilitates an incremental approach to object-relational mapping by providing functionality, that is typically found in an object layer, on top of an existing value layer API, the system comprising the following components: a storage-specific provider component that exposes an API at a value layer of the system for accessing data within a data store, the API conforming with a common data model such that requests made through the API include a connection, a command, and a result object, wherein data returned by the storage-specific provider component is formatted as flat relational data; a mapping provider component that maps the data returned by the storage-specific provider component to a rich relational schema, the rich relational schema defining a format for the data that includes hierarchical and inheritance information, but without materializing the data as an object, the mapping provider component further exposing a rich schema API at the value layer through which the data formatted according to the rich relational schema is retrieved, the rich schema API conforming with the common data model such that requests made through the rich schema API include a connection, a command, and a result object such that requests for data may be made through the API exposed by the storage-specific provider component or the rich schema API exposed by the mapping provider component using the same API calls at the value layer; an object layer object mapping component that maps data returned by the mapping provider component to an object schema in accordance with the common data model, wherein a processor operatively coupled to memory implements the storage-specific provider component, the mapping component and the object layer object mapping component; and a value layer services component that operates in terms of the common data model, wherein the value layer services comprise at least one of returning results with inheritance, returning associations within results, or returning compositions within results without materializing a class representing the value, and wherein the value layer services component includes a common component that compensates for a command operator not supported by the data store.