@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 {}; }