@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface DiscriminatorValue
The DiscriminatorValue
annotation can only be specified on a concrete entity
class.
If the DiscriminatorValue annotation is not
specified and a discriminator column is used, a provider-specific
function will be used to generate a value representing the
entity type. If the DiscriminatorType is
STRING, the discriminator value
default is the entity name.
The inheritance strategy and the discriminator column are only specified in the root of an entity class hierarchy or subhierarchy in which a different inheritance strategy is applied. The discriminator value, if not defaulted, should be specified for each entity class in the hierarchy.
Example:
@Entity
@Table(name="CUST")
@Inheritance(strategy=SINGLE_TABLE)
@DiscriminatorColumn(name="DISC", discriminatorType=STRING, length=20)
@DiscriminatorValue("CUSTOMER")
public class Customer { ... }
@Entity
@DiscriminatorValue("VCUSTOMER")
public class ValuedCustomer extends Customer { ... }
DiscriminatorColumn| Modifier and Type | Required Element and Description |
|---|---|
java.lang.String |
value
(Optional) The value that indicates that the
row is an entity of the annotated entity type.
|
public abstract java.lang.String value
If the DiscriminatorValue annotation is not
specified and a discriminator column is used, a
provider-specific function will be used to generate a value
representing the entity type. If the DiscriminatorType is
STRING, the discriminator value default is the
entity name.