Note: This ORM/SQL annotation is silently ignored by ObjectDB

250 words

javax.persistence.DiscriminatorColumn - JPA annotation

javax.persistence
Annotation DiscriminatorColumn

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 { ... }

Since:
JPA 1.0
See Also:
DiscriminatorValue
(Optional) The SQL fragment that is used when generating the DDL for the discriminator column.
(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.
(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.
(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.
(Optional) The name of column to be used for the discriminator.
Default value:
"DTYPE"
Since:
JPA 1.0

This documentation page is derived (with some adjustments) from the open source JPA 2 RI (EclipseLink)
and is available under the terms of the Eclipse Public License, v. 1.0 and Eclipse Distribution License, v. 1.0.
Object Relational Mapping (ORM) JPA 2 providers include Hibernate, EclipseLink, TopLink, OpenJPA and DataNucleus.
Object DB is not an ORM JPA implementation but an Object Database for Java with built in JPA 2 support.