JPA 2.1 updates. Amendments to draft 11
diff --git a/src/javax/persistence/EntityManager.java b/src/javax/persistence/EntityManager.java
index a853e11..647bdf2 100644
--- a/src/javax/persistence/EntityManager.java
+++ b/src/javax/persistence/EntityManager.java
@@ -79,42 +79,6 @@
* <code>PersistenceContextType.TRANSACTION</code>
*/
public <T> T merge(T entity);
-
- /**
- * Merge the state of the given entity into the current
- * persistence context using the EntityGraph as a template for
- * applying the merge operation.
- * @param entity entity instance
- * @param entityGraph the entity graph template to be used for the
- * merge operation
- * @param properties provider-specific hints. If an implementation
- * does not recognize a hint, it must be ignored.
- * @return the managed instance that the state was merged to
- * @throws IllegalArgumentException if the instance is not an entity,
- * is a removed entity
- * @throws TransactionRequiredException if there is no transaction
- * when invoked on a container-managed entity manager that
- * is of type <code>PersistenceContextType.TRANSACTION</code>
- * @since Java Persistence 2.1
- */
- public <T> T merge(T entity, EntityGraph<? super T> entityGraph, Map<String, Object> properties);
-
- /**
- * Copy the provided entity graph using the EntityGraph argument
- * as a template to specify the attributes that will be copied.
- * Attributes not included in the EntityGraph argument will not be
- * copied.
- * @param entity entity instance
- * @param entityGraph the entity graph template to be used for
- * the copy operation
- * @param properties provider-specific hints. If an implementation
- * does not recognize a hint, it must be ignored.
- * @return copy of the entity
- * @throws IllegalArgumentException if the instance is not an entity
- *
- * @since Java Persistence 2.1
- */
-public <T> T copy(T entity, EntityGraph<? super T> entityGraph, Map<String, Object> properties);
/**
* Remove the entity instance.
diff --git a/src/javax/persistence/NamedEntityGraph.java b/src/javax/persistence/NamedEntityGraph.java
index 6fd21d1..d2c7c2d 100644
--- a/src/javax/persistence/NamedEntityGraph.java
+++ b/src/javax/persistence/NamedEntityGraph.java
@@ -21,8 +21,7 @@
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
- * Used to specify the path and boundaries for an operation (merge, copy,
- * find) or query.
+ * Used to specify the path and boundaries for a find operation or query.
*
* @since Java Persistence 2.1
*/
diff --git a/src/javax/persistence/Persistence.java b/src/javax/persistence/Persistence.java
index 74bdfb8..9062eb6 100644
--- a/src/javax/persistence/Persistence.java
+++ b/src/javax/persistence/Persistence.java
@@ -107,9 +107,18 @@
* @since Java Persistence 2.1
*/
public static void generateSchema(String persistenceUnitName, Map map) {
-
+ PersistenceProviderResolver resolver = PersistenceProviderResolverHolder.getPersistenceProviderResolver();
+ List<PersistenceProvider> providers = resolver.getPersistenceProviders();
+
+ for (PersistenceProvider provider : providers) {
+ if (provider.generateSchema(persistenceUnitName, map)) {
+ return;
+ }
+ }
+
+ throw new PersistenceException("No Persistence provider to generate schema named " + persistenceUnitName);
}
-
+
/**
* Return the PersistenceUtil instance