1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package javax.jdo.annotations;
18
19 import java.lang.annotation.ElementType;
20 import java.lang.annotation.Retention;
21 import java.lang.annotation.RetentionPolicy;
22 import java.lang.annotation.Target;
23
24 /**
25 * Annotation for the datastore identity of the class.
26 * Corresponds to the xml element "datastore-identity" of the "class" element.
27 *
28 * @version 2.1
29 * @since 2.1
30 */
31 @Target(ElementType.TYPE)
32 @Retention(RetentionPolicy.RUNTIME)
33 public @interface DatastoreIdentity
34 {
35 /**
36 * Strategy to use when generating datastore identities
37 * @return Strategy to use when generating datastore identities
38 */
39 IdGeneratorStrategy strategy() default IdGeneratorStrategy.UNSPECIFIED;
40
41 /** Custom strategy to use to generate the value for the identity.
42 * If customStrategy is non-empty, then strategy must be UNSPECIFIED.
43 * @return the custom strategy
44 */
45 String customStrategy() default "";
46
47 /**
48 * Name of sequence to use when the strategy involves sequences
49 * @return Name of sequence to use when the strategy involves sequences
50 */
51 String sequence() default "";
52
53 /**
54 * Name of the column for the datastore identity
55 * @return Name of the column for the datastore identity
56 */
57 String column() default "";
58
59 /**
60 * The column(s) making up the datastore identity.
61 * @return The column(s) making up the datastore identity.
62 */
63 Column[] columns() default {};
64
65 /** Vendor extensions.
66 * @return the vendor extensions
67 */
68 Extension[] extensions() default {};
69 }