Annotation Type ClassExtractor
-
@Target(TYPE) @Retention(RUNTIME) public @interface ClassExtractor
A ClassExtractor allows for a user defined class indicator in place of providing a discriminator column. The class has the following restrictions:- It must extend the org.eclipse.persistence.descriptors.ClassExtractor class and implement the extractClassFromRow(Record, Session) method.
- That method must take a database row (a Record/Map) as an argument and must return the class to use for that 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.
- See Also:
ClassExtractor
,InheritancePolicy.setWithAllSubclassesExpression(Expression)
,InheritancePolicy.setOnlyInstancesExpression(Expression)
- Author:
- Guy Pelletier
- Since:
- EclipseLink 2.1
-
-
Required Element Summary
Required Elements Modifier and Type Required Element Description java.lang.Class<? extends ClassExtractor>
value
(Required) Defines the name of the class extractor that should be applied to this entity's descriptor.
-
-
-
Element Detail
-
value
java.lang.Class<? extends ClassExtractor> value
(Required) Defines the name of the class extractor that should be applied to this entity's descriptor.
-
-