@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Version { /** * Strategy for versioning of objects of this class. * @return the strategy for versioning objects of this class */ VersionStrategy strategy() default VersionStrategy.UNSPECIFIED; /** * Custom strategy for versioning of objects of this class. * If customStrategy is non-empty, strategy must be UNSPECIFIED. * @return the custom strategy for versioning objects of this class */ String customStrategy() default ""; /** * Name of the column for the version. * @return the name of the column for the version */ String column() default ""; /** * Whether the version column(s) is(are) indexed. * @return whether the version column(s) is(are) indexed */ String indexed() default ""; /** * The column(s) making up the version. * @return the column(s) making up the version */ Column[] columns() default {}; /** Vendor extensions. * @return the vendor extensions */ Extension[] extensions() default {}; }