While Java SDO closely models the capabilities of the ABL ProDataSet, the ProDataGraph extensions provide additional support to address the following Java SDO limitations:
Java SDO provides a minimal meta data API that allows clients to introspect data in a DataGraph. However, to more easily define and access the meta data of a ProDataGraph, OpenEdge provides its own classes, ProDataGraphMetaData and ProDataObjectMetaData, to store the schema for a ProDataGraph.
Java SDO provides relationship support by allowing a DataObject (table row) to contain references to other DataObject instances (representing rows in another table). However, it provides no means to describe these relationships as provided for ProDataSets. There is no meta data that describes the field names in the parent and child tables that form the primary-foreign key relationships. OpenEdge provides its own ProDataRelationMetaData class to describe each entity relation (data-relation) in a ProDataGraph.
Java SDO does not support the java.util.GregorianCalendar class as a data type for DataObject column properties. This data type is essential to map ProDataSet fields that have the DATETIME or DATETIME-TZ data type. The OpenEdge ProDataObject class supports the java.util.GregorianCalendar class as a data type for ProDataObject column properties (fields).
Note: Java SDO supports the java.util.Date class, but many of its methods are deprecated as of JDK 1.1 because they are not suitable for internationalization.
The Java SDO ChangeSummary object that tracks changes to any DataObject rows in a DataGraph returns these changes as a list of DataObject rows. However, to efficiently marshall these updates back to the AppServer, these changed rows must be returned to the AppServer as a changes-only ProDataGraph, which maps to a changes-only ProDataSet in the application service. The OpenEdge ProChangeSummary class tracks all ProDataObject changes and returns them in a changes-only ProDataGraph.
The following table summarizes all the OpenEdge classes that support the ProDataGraph extension to Java SDO. They all reside in the com.progress.open4gl package. For more information on how these objects work together, in a typical ProDataGraph, see ProDataGraphobject model.