diff --git a/src/javax/persistence/GeneratedValue.java b/src/javax/persistence/GeneratedValue.java index b24cdbd69..8ec4ce611 100644 --- a/src/javax/persistence/GeneratedValue.java +++ b/src/javax/persistence/GeneratedValue.java @@ -60,5 +60,20 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; @Retention(RUNTIME) public @interface GeneratedValue { + /** + * (Optional) The primary key generation strategy + * that the persistence provider must use to + * generate the annotated entity primary key. + */ + @Deprecated + GenerationType strategy() default GenerationType.AUTO; + /** + * (Optional) The name of the primary key generator + * to use as specified in the {@link SequenceGenerator} + * or {@link TableGenerator} annotation. + *
Defaults to the id generator supplied by persistence provider.
+ */
+ @Deprecated
+ String generator() default "";
}
diff --git a/src/javax/persistence/GenerationType.java b/src/javax/persistence/GenerationType.java
new file mode 100644
index 000000000..9d1980e83
--- /dev/null
+++ b/src/javax/persistence/GenerationType.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
+ * which accompanies this distribution.
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ * Linda DeMichiel - Java Persistence 2.1
+ * Linda DeMichiel - Java Persistence 2.0
+ *
+ ******************************************************************************/
+package javax.persistence;
+
+/**
+ * Defines the types of primary key generation strategies.
+ *
+ * @see GeneratedValue
+ *
+ * @since Java Persistence 1.0
+ */
+public enum GenerationType {
+
+ /**
+ * Indicates that the persistence provider must assign
+ * primary keys for the entity using an underlying
+ * database table to ensure uniqueness.
+ */
+ TABLE,
+
+ /**
+ * Indicates that the persistence provider must assign
+ * primary keys for the entity using a database sequence.
+ */
+ SEQUENCE,
+
+ /**
+ * Indicates that the persistence provider must assign
+ * primary keys for the entity using a database identity column.
+ */
+ IDENTITY,
+
+ /**
+ * Indicates that the persistence provider should pick an
+ * appropriate strategy for the particular database. The
+ * AUTO generation strategy may expect a database
+ * resource to exist, or it may attempt to create one. A vendor
+ * may provide documentation on how to create such resources
+ * in the event that it does not support schema generation
+ * or cannot create the schema resource at runtime.
+ */
+ AUTO
+}