Jump to: navigation, search


Revision as of 14:55, 18 July 2008 by Karen.moore.oracle.com (Talk | contribs) (Copying)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Functional Specification: Dali Support for new EclipseLink type mapping options

bug 240038 - ReadOnly support

bug 240042 - Customizer support

bug 240036 - ChangeTracking support

bug 240035 - CopyPolicy support

Document History

Date Author Version Description & Notes
7-8-2008 Karen Butzke Draft

Project overview

This feature is about adding the attribute mapping converter annotations supported by the EclipseLink JPA extension.


  • Add JPA Details view widgets for ReadOnly annotation and read-only eclipselink-orm.xml element
  • Add JPA Details view widgets for Customizer annotation and customizer eclipselink-orm.xml element
  • Add JPA Details view widgets for ChangeTracking annotation and read-only eclipselink-orm.xml element
  • Add JPA Details view widgets for CopyPolicy, CloneCopyPolicy, InstantiationCopyPolicy annotations and copy-policy, clone-copy-policy, and instantiation-copy-policy eclipselink-orm.xml elements
  • Provide validation for these settings


EclipseLink ReadOnly documentation

EclipseLink Customizer documentation

EclipseLink ChangeTracking documentation

EclipseLink CopyPolicy documentation

Requirements / Functionality


  • @ReadOnly annotation supported on Entity and MappedSuperclass
  • Corresponding eclipselink-orm.xml element is read-only
  • Validation
    • Only define Read-Only on the root of the inheritance hierarchy, error if set on subclass

Entity Read-Only check box


MappedSuperclass Read-Only check box



  • @Customizer annotation is supported on Entity, MappedSuperclass, Embeddable
  • Corresponding eclipselink-orm.xml element is customizer
  • Customizer is not inherited so you can specify on any class in the hierarchy
  • Validation
    • Class must implement org.eclipse.persistence.sessions.factories.DescriptorCustomizer
  • Questions
    • Validation if customizer specified twice, as an annotation and as a persistence.xml property? Or does the persistence.xml property override the one specified in annotation like how the orm.xml overrides the annotation?

Entity Customizer


Mapped Superclass Customizer


Embeddable Customizer



  • @ChangeTracking annotation is supported on Entity, MappedSuperclass, and Embeddable
  • Corresponding eclipselink-orm.xml element is change-tracking
  • Change Tracking options
    • Default (Auto)
    • Auto -> AUTO
    • Attribute -> ATTRIBUTE
    • Object -> OBJECT
    • Default -> DEFERRED

Entity Change Tracking


MappedSuperclass Change Tracking


Embeddable Change Tracking



  • @CopyPolicy, @CloneCopyPolicy, @InstantiationCopyPolicy annotations supported on Entity, MappedSuperclass, and Embeddable
  • Corresponding eclipselink-orm.xml elements copy-policy, clone-copy-policy, instantiation-copy-policy
  • Copy Policy
    • Class must implement org.eclipse.persistence.descriptors.copying.CopyPolicy. Allow user to choose a class, create a class or jump to the class. Validation if it does not implement CopyPolicy
  • Instantiation Copy Policy
    • This is the default, unless in orm.xml and already defined in java
    • The Default option will change in the orm.xml and display what is specified in the java.
  • Clone Copy Policy
    • Must specify one or both of method and working copy method


Copying tab from standalone workbench


Instantiation tab from standalone workbench




This section lists the open issues that are still pending that must be decided prior to fully implementing this project's requirements.

Issue # Owner Description / Notes Decision

Future Considerations

During the research for this project the following items were identified as out of scope but are captured here as potential future enhancements. If agreed upon during the review process these should be logged in the bug system.