Top Description Methods
org.eclipse.persistence.annotations

public @Interface ClassExtractor

extends Annotation
Annotations
@Target:TYPE
@Retention:RUNTIME
Imports
org.eclipse.persistence.expressions.Expression, java.lang.annotation.Retention, .Target

A ClassExtractor allows for a user defined class indicator in place of providing a discriminator column. The class has the following restrictions: This method will be used to decide which class to instantiate when reading from the database. It is the application's responsibility to populate any typing information in the database required to determine the class from the row.

The ClassExtractor must only be set on the root of an entity class or sub-hierarchy in which a different inheritance strategy is applied. The ClassExtractor can only be used with the SINGLE_TABLE and JOINED inheritance strategies.

If a ClassExtractor is used then a DiscriminatorColumn cannot be used. A DiscriminatorColumn also cannot be used on either the root or its subclasses.

In addition, for more complex configurations using a ClassExtractor and a SINGLE_TABLE strategy, the descriptor's withAllSubclasses and onlyInstances expressions should be set through the ClassExtractor's initialize method.

Author
Guy Pelletier
Since
EclipseLink 2.1
See Also
org.eclipse.persistence.descriptors.ClassExtractor, org.eclipse.persistence.descriptors.InheritancePolicy#setWithAllSubclassesExpression(Expression), org.eclipse.persistence.descriptors.InheritancePolicy#setOnlyInstancesExpression(Expression)

Method Summary

Modifier and TypeMethod and Description
public Class<? extends ClassExtractor>
value()

(Required) Defines the name of the class extractor that should be applied to this entity's descriptor.

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString

Method Detail

valueback to summary
public Class<? extends ClassExtractor> value()

(Required) Defines the name of the class extractor that should be applied to this entity's descriptor.