Specifies the discriminator column for the
SINGLE_TABLE
and
JOINED
inheritance mapping strategies.
The mapping strategy and discriminator column are only specified for 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 { ... }
- Since:
- 1.0
- See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescription(Optional) The SQL fragment that is used when generating the DDL for the discriminator column.(Optional) The type of object/column to use as a class discriminator.int
(Optional) The column length for String-based discriminator types.(Optional) The name of column to be used for the discriminator.(Optional) A SQL fragment appended to the generated DDL which declares this column.
-
Element Details
-
name
-
discriminatorType
DiscriminatorType discriminatorType(Optional) The type of object/column to use as a class discriminator. Defaults toDiscriminatorType.STRING
.- Default:
STRING
-
columnDefinition
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:
""
-
options
String options(Optional) A SQL fragment appended to the generated DDL which declares this column. May not be used in conjunction withcolumnDefinition()
.- Since:
- 3.2
- Default:
""
-
length
int length(Optional) The column length for String-based discriminator types. Ignored for other discriminator types.- Default:
31
-