Annotation Type ClassExtractor
@Target(TYPE) @Retention(RUNTIME) public @interface ClassExtractorA 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:
- Guy Pelletier
- EclipseLink 2.1
java.lang.Class<? extends ClassExtractor> value(Required) Defines the name of the class extractor that should be applied to this entity's descriptor.