Target: Classes
Specifies the discriminator column for the SINGLE_TABLE
and JOINED
Inheritance
mapping strategies. The 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
If the DiscriminatorColumn
annotation is missing, and a discriminator column is required, the name of the discriminator column defaults to "DTYPE"
and the discriminator type to DiscriminatorType.STRING
.
Example:
@
Entity
@
Table
(name="CUST")
@ Inheritance (strategy=SINGLE_TABLE )
@ DiscriminatorColumn (name="DISC", discriminatorType=STRING, length=20 )
public class Customer { ... }
@ Entity public class ValuedCustomer extends Customer { ... }
@ Inheritance (strategy=SINGLE_TABLE )
@ DiscriminatorColumn (name="DISC", discriminatorType=STRING, length=20 )
public class Customer { ... }
@ Entity public class ValuedCustomer extends Customer { ... }
Since:
JPA 1.0See Also:
DiscriminatorValue
String
columnDefinition
(Optional) The SQL fragment that is used when generating the DDL for the discriminator column.
Defaults to the provider-generated SQL to create a column of the specified discriminator type.
-
Default value:
- ""
-
Since:
- JPA 1.0
(Optional) The type of object/column to use as a class discriminator. Defaults to
DiscriminatorType.STRING
.
-
Default value:
- javax.persistence.DiscriminatorType.STRING
-
Since:
- JPA 1.0
int
length
(Optional) The column length for String-based discriminator types. Ignored for other discriminator types.
-
Default value:
- 31
-
Since:
- JPA 1.0
String
name
(Optional) The name of column to be used for the discriminator.
-
Default value:
- "DTYPE"
-
Since:
- JPA 1.0