System and method of providing and utilizing an object schema to facilitate mapping between disparate domains
First Claim
1. A method implemented by a computing system having a processor coupled to a memory for generating an object schema used in mapping between a relational database and objects from an object oriented programming language comprising:
- receiving program code that describes one or more classes which define objects, wherein the objects are components from an object oriented programming language comprising data structures and functions operable on data;
describing members of each class, wherein the members of each class comprise compound members, wherein the compound members comprise a second member and at least one of a plurality of attributes describing the members of each class, and wherein the compound members allow mapping of complex members as inline members of a given class, which allows inline mapping of arrays, structs and entity key members;
specifying relationships between the one or more classes;
receiving input from a developer through an interface component;
generating an object schema using the input received from the interface component to be employed to facilitate mapping the objects described in the received program code to tables in a relational database, wherein data in the relational database describes the objects and the data in the relational database persists, the object schema comprising;
a first data structure comprising a plurality of attributes describing the one or more classes which define the objects, the plurality of attributes describing the one or more classes comprising at least a persistence service class attribute designating a persistence service to use when persisting a particular class associated with the persistence service class attribute;
a second data structure comprising the plurality of attributes describing the members of each class, the plurality of attributes describing the members of each class comprising at leasta hidden attribute that defines if there is a hidden member in a corresponding class and manages the hidden member in a transparent fashion,a key generator attribute designating a user class that is to act as a custom key generator, anda key generator parameter attribute designating parameters to be passed to the custom key generator;
a third data structure comprising a plurality of attributes describing the relationships between the one or more classes, the plurality of attributes describing the relationships between the one or more classes comprising at least a relationship name attribute identifying a unique name for a relationship, and a relationship type attribute identifying a type of predefined relationship; and
wherein at least one of the members described in the second data structure contains an alias attribute to query a private member, the alias attribute pointing to a public member that is to be utilized in place of the associated private member in text of a query;
providing a relational schema that provides details regarding the relational database and utilizes metadata associated with the database to generate an implementation neutral or an implementation specific format that represents the database structure; and
providing a mapping schema that provides a mapping between the object schema and the relational schema.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to a system and methodology to facilitated data object persistence. An object schema is utilized to provide metadata for types in addition to what is provided by the type system for an underlying programming language. This metadata is then utilized by the system to translate data to and from user objects during a materialization or persistence process. The object schema provides information external to programming logic and type definitions. Consequently, the object schema can be deployed independent of an application thereby allowing the persistence storage of user objects to change without force the user to recompile and deploy application code.
-
Citations
16 Claims
-
1. A method implemented by a computing system having a processor coupled to a memory for generating an object schema used in mapping between a relational database and objects from an object oriented programming language comprising:
-
receiving program code that describes one or more classes which define objects, wherein the objects are components from an object oriented programming language comprising data structures and functions operable on data; describing members of each class, wherein the members of each class comprise compound members, wherein the compound members comprise a second member and at least one of a plurality of attributes describing the members of each class, and wherein the compound members allow mapping of complex members as inline members of a given class, which allows inline mapping of arrays, structs and entity key members; specifying relationships between the one or more classes; receiving input from a developer through an interface component; generating an object schema using the input received from the interface component to be employed to facilitate mapping the objects described in the received program code to tables in a relational database, wherein data in the relational database describes the objects and the data in the relational database persists, the object schema comprising; a first data structure comprising a plurality of attributes describing the one or more classes which define the objects, the plurality of attributes describing the one or more classes comprising at least a persistence service class attribute designating a persistence service to use when persisting a particular class associated with the persistence service class attribute; a second data structure comprising the plurality of attributes describing the members of each class, the plurality of attributes describing the members of each class comprising at least a hidden attribute that defines if there is a hidden member in a corresponding class and manages the hidden member in a transparent fashion, a key generator attribute designating a user class that is to act as a custom key generator, and a key generator parameter attribute designating parameters to be passed to the custom key generator; a third data structure comprising a plurality of attributes describing the relationships between the one or more classes, the plurality of attributes describing the relationships between the one or more classes comprising at least a relationship name attribute identifying a unique name for a relationship, and a relationship type attribute identifying a type of predefined relationship; and wherein at least one of the members described in the second data structure contains an alias attribute to query a private member, the alias attribute pointing to a public member that is to be utilized in place of the associated private member in text of a query; providing a relational schema that provides details regarding the relational database and utilizes metadata associated with the database to generate an implementation neutral or an implementation specific format that represents the database structure; and providing a mapping schema that provides a mapping between the object schema and the relational schema. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
Specification