Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/SDO/Introduction to EclipseLink SDO (ELUG)"

m (Using Property)
(What You May Need to Know About Serialization in SDO)
 
(41 intermediate revisions by 2 users not shown)
Line 3: Line 3:
  
 
==Using SDO Metadata==
 
==Using SDO Metadata==
SDO metadata is represented as <tt>[[#Using Type|Type]]</tt> and <tt>[[#Using Property|Property]]</tt> objects. You define the metadata at run time either programmatically, or from an XML schema.
+
SDO metadata is represented as <tt>[[#Using Type|Type]]</tt> and <tt>[[#Using Property|Property]]</tt> objects. You define the metadata at run time either programmatically ([[#How to Define Metadata with TypeHelper| using TypeHelper]]), or from an XML schema ([[#How to Define Metadata with XSDHelper | using XSDHelper]]).
 +
 
 +
For more information, see [http://wiki.eclipse.org/EclipseLink/Examples/SDO/MetadataXMLSchema EclipseLink examples of metadata usage].
  
  
Line 13: Line 15:
 
A <tt>Type</tt> can have supertypes, which corresponds to the EclipseLink concept of inheritance policy (see [[Introduction_to_Descriptors_%28ELUG%29#Descriptor_API | Inheritance Policy in Descriptor API]]).
 
A <tt>Type</tt> can have supertypes, which corresponds to the EclipseLink concept of inheritance policy (see [[Introduction_to_Descriptors_%28ELUG%29#Descriptor_API | Inheritance Policy in Descriptor API]]).
  
For more information, see [http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/Type.html Type API].
+
To create types programmatically, you populate a <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/DataObject.html DataObject]</tt> with them.
  
 +
To load types from an XML schema, use the <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/XSDHelper.html XSDHelper]</tt> class, as the following example shows:
  
====What You May Need to Know About Open Sequenced Type====
+
HelperContext ctx = HelperProvider.getDefaultContext();
For information, see <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/dataobjects/OpenSequencedType.html  OpenSequencedType]</tt>.
+
FileInputStream is = new FileInputStream("test.xsd");
 +
ctx.getXSDHelper().define(is, null);
  
 +
For more information, see the default <tt>[http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/Type.html Type]</tt> API.
  
====What You May Need to Know About DataObjectType for Data Types====
 
For information, see <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/types/SDODataObjectType.html  SDODataObjectType]</tt>.
 
  
===Using Property===
+
====What You May Need to Know About Sequenced Types====
SDO <tt>Property</tt> acts similarly to a property in Java and provides much of the same metadata as the Java Reflection API provides for Java fields or methods.
+
  
In EclipseLink, a <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/SDOProperty.html | Property]</tt> wraps an [[Introduction_to_XML_Mappings_%28ELUG%29 | object-XML mapping]] in the following way:
+
You can define SDO types as sequenced (that is, <tt>isSequenced</tt> is <tt>true</tt>).  With sequenced DataObjects you can have fine grained control over how the properties are ordered when they are saved to XML.  For more information see <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/Sequence.html Sequence]</tt>.
  
* <tt>DataType=true + isMany=false</tt>
+
====What You May Need to Know About Open Types====
Corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Direct_Mapping | OXM direct mappings]] and [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Binary_Data_Mapping | OXM binary mappings]].
+
You can define SDO types as open (that is, isOpen is true). Open DataObjects will accept additional properties (the ones not specified by their <tt>Type</tt>).
* <tt>DataType=true + isMany=true</tt>
+
Corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Composite_Direct_Collection_Mapping | OXM direct collection mappings]] and [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Binary_Data_Collection_Mapping | OXM binary collection mappings]].
+
* <tt>DataType=false + isMany=false + containment=true</tt>
+
Corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Composite_Object_Mapping | OXM composite object mappings]].
+
* <tt>DataType=false + isMany=true + containment=true</tt>
+
Corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Composite_Collection_Mapping | OXM composite collection mappings]].
+
* <tt>DataType=false + isMany=false + containment=false</tt>
+
Corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Object_Reference_Mapping | OXM reference mappings]].
+
* <tt>DataType=false + isMany=true + containment=false</tt>
+
Corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Collection_Reference_Mapping | OXM collection reference mappings]].
+
  
 +
===Using Property===
 +
A <tt>DataObject</tt> is made up of <tt>Property</tt> values. SDO <tt>Property</tt> acts similarly to a property in Java and provides much of the same metadata as the Java Reflection API provides for Java fields or methods.
 +
 +
In EclipseLink, a <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/SDOProperty.html SDOProperty]</tt> wraps an [[Introduction_to_XML_Mappings_%28ELUG%29 | object-XML mapping]] in the following manner:
 +
 +
* <tt>DataType=true + isMany=false</tt> - corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Direct_Mapping | OXM direct mappings]] and [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Binary_Data_Mapping | OXM binary mappings]].
 +
* <tt>DataType=true + isMany=true</tt> - corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Composite_Direct_Collection_Mapping | OXM direct collection mappings]] and [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Binary_Data_Collection_Mapping | OXM binary collection mappings]].
 +
* <tt>DataType=false + isMany=false + containment=true</tt> - corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Composite_Object_Mapping | OXM composite object mappings]].
 +
* <tt>DataType=false + isMany=true + containment=true</tt> - corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Composite_Collection_Mapping | OXM composite collection mappings]].
 +
* <tt>DataType=false + isMany=false + containment=false</tt> - corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Object_Reference_Mapping | OXM reference mappings]].
 +
* <tt>DataType=false + isMany=true + containment=false</tt> - corresponds to EclipseLink [[Introduction_to_XML_Mappings_%28ELUG%29#XML_Collection_Reference_Mapping | OXM collection reference mappings]].
  
For more information, see [http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/Property.html Property API].
+
For more information, see the <tt>[http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/Property.html Property]</tt> API.
  
 
===Defining Metadata===
 
===Defining Metadata===
You can use the following EclipseLink helper classes to define SDO metadata:
+
You can use the following helper classes to define and access SDO metadata:
* <tt>[[#How to Define Metadata with EclipseLink XSDHelper | XSDHelper]]</tt>
+
* <tt>[[#How to Define Metadata with XSDHelper| XSDHelper]]</tt>
* <tt>[[#How to Define Metadata with EclipseLink TypeHelper | TypeHelper]]</tt>
+
* <tt>[[#How to Define Metadata with TypeHelper| TypeHelper]]</tt>
  
Information pending: modifying and accessing the underlying EclipseLink metadata
+
<!-- Information pending: modifying and accessing the underlying EclipseLink metadata -->
  
  
====How to Define Metadata with EclipseLink XSDHelper====
+
====How to Define Metadata with XSDHelper====
 
You use the <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/XSDHelper.html XSDHelper]</tt> to do the following:
 
You use the <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/XSDHelper.html XSDHelper]</tt> to do the following:
 
* Define SDO metadata, where SDO metadata is derived from XML schemas.
 
* Define SDO metadata, where SDO metadata is derived from XML schemas.
 
* Generate XML schemas from SDO types.
 
* Generate XML schemas from SDO types.
  
You can customize metadata using the following annotations that you apply to the XML schema:
+
You can obtain the default <tt>XSDHelper</tt> from the <tt>INSTANCE</tt> field or from the <tt>getXSDHelper</tt> method of the default <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/HelperContext.html HelperContext]</tt>.
 +
 
 +
You can customize metadata by using the following annotations that you apply to the XML schema:
 
* Standard annotations:
 
* Standard annotations:
 
** Information pending
 
** Information pending
Line 66: Line 71:
  
 
You can also use various APIs to determine the XML representation about the SDO metadata.
 
You can also use various APIs to determine the XML representation about the SDO metadata.
 +
 +
For more information, see the following:
 +
* EclipseLink <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/helper/SDOXSDHelper.html SDOXSDHelper]</tt> API
 +
* [http://wiki.eclipse.org/EclipseLink/Examples/SDO/BasicAPI#XSDHelper_-_Access_XML_Schema_Metadata EclipseLink XSDHelper examples]
 +
 +
  
====How to Define Metadata with EclipseLink TypeHelper====
+
====How to Define Metadata with TypeHelper====
 
You use the <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/TypeHelper.html TypeHelper]</tt> to do the following:
 
You use the <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/TypeHelper.html TypeHelper]</tt> to do the following:
 
* Look up SDO metadata.
 
* Look up SDO metadata.
* Programmatically define SDO metadata (note that this is not the typical usage for the <tt>TypeHelper</tt>).
+
* Programmatically define SDO metadata.
 +
 
 +
You can obtain the default <tt>TypeHelper</tt> from the <tt>INSTANCE</tt> field or from the <tt>getTypeHelper</tt> method of the default <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/HelperContext.html HelperContext]</tt>.
 +
 
 +
For more information on how to use the <tt>TypeHelper</tt> in your application, see [http://wiki.eclipse.org/EclipseLink/Examples/SDO/BasicAPI#TypeHelper_-_Access_Metadata TypeHelper examples].
 +
 
 +
For more information, see EclipseLink <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/helper/SDOTypeHelper.html SDOTypeHelper]</tt> API.
  
 
==Using Data==
 
==Using Data==
Information pending
+
Use the following SDO classes to work with data:
 +
* <tt>[[#Using DataObject | DataObject]]</tt>
 +
* <tt>[[#Using XMLDocument | XMLDocument]]</tt>
 +
 
  
 
===Using DataObject===
 
===Using DataObject===
<!-- (see 17.2.6 “Mapping converters and transformers” in JITDG/ELUG) -->
+
A <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/DataObject.html DataObject]</tt> is the central concept in SDO. It represents business data and corresponds to an <tt>Object</tt> in Java (POJO).  
<tt>DataObject</tt> in SDO corresponds to a Java <tt>Object</tt> (POJO).  
+
To define [[Introduction_to_XML_Mappings_%28ELUG%29 | object-XML mappings]], you map the <tt>DataObject</tt> to XML.
To define object-XML mappings, you map the <tt>DataObject</tt> to XML.
+
You can create your data object as either dynamic (see [http://wiki.eclipse.org/EclipseLink/Examples/SDO/DynamicAPI Dynamic DataObject Examples]), or static by applying a type-safe interface to it (see [http://wiki.eclipse.org/EclipseLink/Examples/SDO/StaticAPI Static DataObject Examples]).
You can create your <tt>DataObject</tt> as either dynamic (see [http://wiki.eclipse.org/EclipseLink/Examples/SDO/DynamicAPI Dynamic DataObject Examples]), or static by applying a type-safe interface to it (see [http://wiki.eclipse.org/EclipseLink/Examples/SDO/StaticAPI Static DataObject Examples]).  
+
 
The <tt>DataObject</tt> provides an XPath-like (see [[Introduction_to_Mappings_%28ELUG%29#Mappings_and_XPath | Mappings and XPath]]) means of data access. For example, the following code is valid in SDO:  
 
The <tt>DataObject</tt> provides an XPath-like (see [[Introduction_to_Mappings_%28ELUG%29#Mappings_and_XPath | Mappings and XPath]]) means of data access. For example, the following code is valid in SDO:  
 
  customerDO.getDataObject("contact-info/phone-number[2]");  
 
  customerDO.getDataObject("contact-info/phone-number[2]");  
Line 86: Line 106:
 
  customer.getContactInfo().getPhoneNumbers().get(1);  
 
  customer.getContactInfo().getPhoneNumbers().get(1);  
  
For more information, see [http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/DataObject.html DataObject API]
+
Note that you can use the EclipseLink <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/helper/extension/XPathHelper.html XPathHelper]</tt> to query data objects using an XPath expression.
  
 +
For more information, see EclipseLink <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/SDODataObject.html SDODataObject]</tt> API.
  
====What You May Need to Know About Serialization in SDO====
 
<!-- (see 17.2.6.1 in JITDG/ELUG) -->
 
SDO has its own Java serialization format.
 
  
 +
 +
====What You May Need to Know About Serialization in SDO====
 +
SDO DataObjects are serializable.  When a DataObject is serialized, the entire data graph is serialized with it.  On the stream SDO DataObjects are represented in a specification defined XML representation.
  
 
===Using XMLDocument===
 
===Using XMLDocument===
 
When you marshall (save) a <tt>DataObject</tt> to XML, or unmarshall an XML document into objects, the <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/XMLDocument.html XMLDocument]</tt> class contains information about the root of the XML document.
 
When you marshall (save) a <tt>DataObject</tt> to XML, or unmarshall an XML document into objects, the <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/XMLDocument.html XMLDocument]</tt> class contains information about the root of the XML document.
 +
 +
The <tt>[http://www.eclipse.org/eclipselink/api/1.1/commonj/sdo/helper/XMLHelper.html XMLHelper]</tt> creates and serializes <tt>XMLDocument</tt> objects. The <tt>XMLDocument</tt> does not change the state of any input <tt>DataObject</tt> and ignores any containers.
 +
 +
For more information, see EclipseLink <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/SDOXMLDocument.html SDOXMLDocument]</tt> API.
 +
  
  
 
===What You May Need to Know About Sequence, ChangeSummary, and DataGraph===
 
===What You May Need to Know About Sequence, ChangeSummary, and DataGraph===
The following SDO classes... :(information pending)
+
The following SDO classes allow you to obtain additional information about data objects:
* <tt>[http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/Sequence.html Sequence]</tt>
+
* <tt>[http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/Sequence.html Sequence]</tt> -- provides a list of properties and their corresponding values. It represents the order of all the XML elements in the <tt>DataObject</tt>. Each entry in a Sequence has an index, with the order of settings being preserved, even across different properties. The same properties that appear in a <tt>Sequence</tt> are also available through a <tt>DataObject</tt>, but without preserving the order across properties.<br>You should use sequences when dealing with semi-structured business data, for example, mixed text XML elements.
* <tt>[http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/ChangeSummary.html ChangeSummary]</tt>
+
* <tt>[http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/ChangeSummary.html ChangeSummary]</tt> -- records changes to data objects, therefore reducing the amount of data that needs to be transmitted between collaborating SDO applications.<br>The <tt>ChangeSummary</tt> only tracks modifications that have been made to a tree of data objects starting from the point when logging was activated. If logging is no longer active, the log includes only changes that were made up to the point when logging was deactivated. Otherwise, it includes all changes up to the point at which the <tt>ChangeSummary</tt> is being interrogated. Although change information is only gathered when logging is on, you can query change information whether logging is on or off. All of the information returned is read-only.<br> Use the <tt>ChangeSummary</tt>'s <tt>beginLogging</tt> method to clear the <tt>List</tt> of changed <tt>DataObjects</tt> and start change logging; use the <tt>endLogging</tt> method to stop change logging; use <tt>undoChanges</tt> to restore the tree of data objects to its state when logging began. Note that <tt>undoChanges</tt> also clears the log, but does not affect <tt>isLogging</tt>.
* <tt>[http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/DataGraph.html DataGraph]</tt> -- essentially deprecated.
+
 
 +
Note that the <tt>[http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.emf.ecore.sdo.doc/references/javadoc/commonj/sdo/DataGraph.html DataGraph]</tt> class has been deprecated.
 +
 
 +
For more information, see the following EclipseLink APIs:
 +
* <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/SDOSequence.html SDOSequence]</tt>
 +
* <tt>[http://www.eclipse.org/eclipselink/api/1.1/org/eclipse/persistence/sdo/SDOChangeSummary.html SDOChangeSummary]</tt>
 +
 
  
  

Latest revision as of 10:24, 21 May 2009

This section introduces EclipseLink implementation of Service Data Objects (SDO) specification, as well as provides information on how you can use it in your application development.


Using SDO Metadata

SDO metadata is represented as Type and Property objects. You define the metadata at run time either programmatically ( using TypeHelper), or from an XML schema ( using XSDHelper).

For more information, see EclipseLink examples of metadata usage.


Using Type

SDO Type acts similarly to a Class in Java, and provides much of the same metadata as the Java Reflection API provides for Java classes.

In EclipseLink, a SDOType wraps an object-XML mapping (OXM) descriptor.

A Type can have supertypes, which corresponds to the EclipseLink concept of inheritance policy (see Inheritance Policy in Descriptor API).

To create types programmatically, you populate a DataObject with them.

To load types from an XML schema, use the XSDHelper class, as the following example shows:

HelperContext ctx = HelperProvider.getDefaultContext();
FileInputStream is = new FileInputStream("test.xsd");
ctx.getXSDHelper().define(is, null);

For more information, see the default Type API.


What You May Need to Know About Sequenced Types

You can define SDO types as sequenced (that is, isSequenced is true). With sequenced DataObjects you can have fine grained control over how the properties are ordered when they are saved to XML. For more information see Sequence.

What You May Need to Know About Open Types

You can define SDO types as open (that is, isOpen is true). Open DataObjects will accept additional properties (the ones not specified by their Type).

Using Property

A DataObject is made up of Property values. SDO Property acts similarly to a property in Java and provides much of the same metadata as the Java Reflection API provides for Java fields or methods.

In EclipseLink, a SDOProperty wraps an object-XML mapping in the following manner:

For more information, see the Property API.

Defining Metadata

You can use the following helper classes to define and access SDO metadata:


How to Define Metadata with XSDHelper

You use the XSDHelper to do the following:

  • Define SDO metadata, where SDO metadata is derived from XML schemas.
  • Generate XML schemas from SDO types.

You can obtain the default XSDHelper from the INSTANCE field or from the getXSDHelper method of the default HelperContext.

You can customize metadata by using the following annotations that you apply to the XML schema:

  • Standard annotations:
    • Information pending
  • EclipseLink annotations:
    • Information pending

You can also use various APIs to determine the XML representation about the SDO metadata.

For more information, see the following:


How to Define Metadata with TypeHelper

You use the TypeHelper to do the following:

  • Look up SDO metadata.
  • Programmatically define SDO metadata.

You can obtain the default TypeHelper from the INSTANCE field or from the getTypeHelper method of the default HelperContext.

For more information on how to use the TypeHelper in your application, see TypeHelper examples.

For more information, see EclipseLink SDOTypeHelper API.

Using Data

Use the following SDO classes to work with data:


Using DataObject

A DataObject is the central concept in SDO. It represents business data and corresponds to an Object in Java (POJO). To define object-XML mappings, you map the DataObject to XML. You can create your data object as either dynamic (see Dynamic DataObject Examples), or static by applying a type-safe interface to it (see Static DataObject Examples).

The DataObject provides an XPath-like (see Mappings and XPath) means of data access. For example, the following code is valid in SDO:

customerDO.getDataObject("contact-info/phone-number[2]"); 

The standard JAXB, however, would require the following:

customer.getContactInfo().getPhoneNumbers().get(1); 

Note that you can use the EclipseLink XPathHelper to query data objects using an XPath expression.

For more information, see EclipseLink SDODataObject API.


What You May Need to Know About Serialization in SDO

SDO DataObjects are serializable. When a DataObject is serialized, the entire data graph is serialized with it. On the stream SDO DataObjects are represented in a specification defined XML representation.

Using XMLDocument

When you marshall (save) a DataObject to XML, or unmarshall an XML document into objects, the XMLDocument class contains information about the root of the XML document.

The XMLHelper creates and serializes XMLDocument objects. The XMLDocument does not change the state of any input DataObject and ignores any containers.

For more information, see EclipseLink SDOXMLDocument API.


What You May Need to Know About Sequence, ChangeSummary, and DataGraph

The following SDO classes allow you to obtain additional information about data objects:

  • Sequence -- provides a list of properties and their corresponding values. It represents the order of all the XML elements in the DataObject. Each entry in a Sequence has an index, with the order of settings being preserved, even across different properties. The same properties that appear in a Sequence are also available through a DataObject, but without preserving the order across properties.
    You should use sequences when dealing with semi-structured business data, for example, mixed text XML elements.
  • ChangeSummary -- records changes to data objects, therefore reducing the amount of data that needs to be transmitted between collaborating SDO applications.
    The ChangeSummary only tracks modifications that have been made to a tree of data objects starting from the point when logging was activated. If logging is no longer active, the log includes only changes that were made up to the point when logging was deactivated. Otherwise, it includes all changes up to the point at which the ChangeSummary is being interrogated. Although change information is only gathered when logging is on, you can query change information whether logging is on or off. All of the information returned is read-only.
    Use the ChangeSummary's beginLogging method to clear the List of changed DataObjects and start change logging; use the endLogging method to stop change logging; use undoChanges to restore the tree of data objects to its state when logging began. Note that undoChanges also clears the log, but does not affect isLogging.

Note that the DataGraph class has been deprecated.

For more information, see the following EclipseLink APIs:



Copyright Statement