blob: 7a73362dedb50b662c571e256850257d3a7240d1 [file] [log] [blame]
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Discriminator
{
/**
* Strategy to use for the discriminator. The discriminator determines
* the class associated with a row in the datastore.
* @return the strategy to use for the discriminator
*/
DiscriminatorStrategy strategy()
default DiscriminatorStrategy.UNSPECIFIED;
/** Custom strategy to use for the discriminator.
* If customStrategy is non-empty, then strategy must be UNSPECIFIED.
* @return the custom strategy
*/
String customStrategy() default "";
/**
* Whether the discriminator is indexed.
* @return whether the discriminator is indexed
*/
String indexed() default "";
/**
* Name of the column for the discriminator
* @return the name of the column for the discriminator
*/
String column() default "";
/**
* The value for the discriminator for objects of this class
* when using "value-map" strategy.
* @return The value for the discriminator for objects of this class
* when using "value-map" strategy
*/
String value() default "";
/**
* The column(s) making up the discriminator.
* @return the column(s) making up the discriminator
*/
Column[] columns() default {};
}