Use @ChangeTracking to specify the org.eclipse.persistence.descriptors.changetracking.ObjectChangePolicy. This policy computes change sets for the EclipseLink commit process and optimizes the transaction by including objects in the change set calculation that have at least one changed attribute.
Annotation Elements
Table 2-9 describes this annotation's elements.
Table 2-9 @ChangeTracking Annotation Elements
| Annotation Element | Description | Default |
|---|---|---|
|
|
(Optional) The change tracking policy to use:
|
|
Usage
Use this annotation to configure an alternative change policy, if the automatic policy is having issues with your application. Using @ChangeTracking may improve commit performance for objects with few attributes or objects with many changed attributes.
|
When using change tracking with |
Examples
Example 2-20 shows how to use @ChangeTracking to set the unit of work's change policy.
Example 2-20 Using @ChangeTracking Annotation
@ChangeTracking(DEFERRED)
@Entity
public class Employee {
...
}
Example 2-21 shows how to use the <change-tracking> element in the eclipselink-orm.xml file.
Example 2-21 Using <change-tracking> XML
<entity class="Employee"
<change-tracking type="DEFERRED"/>
...
</entity>
Example 2-22 shows how to configure change tracking in the persistence unit persistence.xml file or by importing a property map.
Example 2-22 Specifying Change Tracking in persistence.xml
Using persistence.xml file:
<property name="eclipselink.weaving.changetracking" value="false"/>
Using property map:
import org.eclipse.persistence.config.PersistenceUnitProperties; propertiesMap.put(PersistenceUnitProperties.WEAVING_CHANGE_TRACKING, "false");
See Also
For more information, see:
"Enhancing Performance" in Solutions Guide for EclispeLink