Annotation Interface DiscriminatorColumn


@Target(TYPE) @Retention(RUNTIME) public @interface DiscriminatorColumn
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

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    (Optional) The SQL fragment that is used when generating the DDL for the discriminator column.
    (Optional) A comment to be applied to the 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

      String name
      (Optional) The name of column to be used for the discriminator.
      Default:
      "DTYPE"
    • discriminatorType

      DiscriminatorType discriminatorType
      (Optional) The type of object/column to use as a class discriminator. Defaults to DiscriminatorType.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 with columnDefinition().
      Since:
      3.2
      Default:
      ""
    • length

      int length
      (Optional) The column length for String-based discriminator types. Ignored for other discriminator types.
      Default:
      31
    • comment

      String comment
      (Optional) A comment to be applied to the column. This is only used if table generation is in effect.
      Since:
      4.0
      Default:
      ""