Author: ppoddar
Date: Tue Apr 30 01:40:39 2013
New Revision: 1477446
URL: http://svn.apache.org/r1477446
Log:
support Stored Procedure
Modified:
openjpa/sandboxes/21/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNativeQueryProcedures.java
Modified:
openjpa/sandboxes/21/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNativeQueryProcedures.java
URL:
http://svn.apache.org/viewvc/openjpa/sandboxes/21/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNativeQueryProcedures.java?rev=1477446&r1=1477445&r2=1477446&view=diff
==============================================================================
---
openjpa/sandboxes/21/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNativeQueryProcedures.java
(original)
+++
openjpa/sandboxes/21/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestNativeQueryProcedures.java
Tue Apr 30 01:40:39 2013
@@ -18,20 +18,20 @@
*/
package org.apache.openjpa.persistence.jdbc.query;
-import java.util.Collection;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
+import javax.persistence.StoredProcedureQuery;
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
import org.apache.openjpa.jdbc.sql.DerbyDictionary;
+import org.apache.openjpa.jdbc.sql.StoredProcedure;
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
import org.apache.openjpa.persistence.jdbc.query.domain.Applicant;
import org.apache.openjpa.persistence.jdbc.query.domain.Game;
-import org.apache.openjpa.persistence.jdbc.query.procedure.DerbyProcedureList;
import
org.apache.openjpa.persistence.jdbc.query.procedure.AbstractProcedureList;
-import org.apache.openjpa.persistence.jdbc.query.procedure.StoredProcedure;
+import org.apache.openjpa.persistence.jdbc.query.procedure.DerbyProcedureList;
import org.apache.openjpa.persistence.test.AllowFailure;
import org.apache.openjpa.persistence.test.SingleEMFTestCase;
@@ -57,7 +57,7 @@ public class TestNativeQueryProcedures e
if (conf.getDBDictionaryInstance() instanceof DerbyDictionary) {
procedureList = new DerbyProcedureList();
}
- for (StoredProcedure proc : procedureList.getProcedureList()) {
+ for (org.apache.openjpa.jdbc.sql.StoredProcedure proc :
procedureList.getProcedureList()) {
executeSQL(proc.getCreateSQL());
}
}
@@ -142,7 +142,6 @@ public class TestNativeQueryProcedures e
}
}
- @AllowFailure(value=true, message="Waiting for resolution for JIRA
DERBY-4558")
public void testNoReturnMultiParamProcedure() {
if (procedureList != null) {
EntityManager em = emf.createEntityManager();
@@ -167,7 +166,7 @@ public class TestNativeQueryProcedures e
em.getTransaction().begin();
Query query = em.createNativeQuery(sql);
query.setParameter(1, "Charlie");
- query.setParameter(2, "x");
+ query.setParameter(2, "z");
query.getSingleResult();
em.getTransaction().commit();
fail("Expected exception. getSingleResult() with no returns " +
@@ -180,7 +179,7 @@ public class TestNativeQueryProcedures e
em.getTransaction().begin();
Query query = em.createNativeQuery(sql);
query.setParameter(1, "Charlie");
- query.setParameter(2, "x");
+ query.setParameter(2, "z");
query.getResultList();
em.getTransaction().commit();
fail("Expected exception. getResultList() with no returns " +
@@ -195,7 +194,7 @@ public class TestNativeQueryProcedures e
em.getTransaction().begin();
Query query = em.createNativeQuery(sql);
query.setParameter(1, "Charlie");
- query.setParameter(2, "x");
+ query.setParameter(2, "z");
query.executeUpdate();
em.getTransaction().commit();
} catch (Exception e) {
@@ -212,7 +211,7 @@ public class TestNativeQueryProcedures e
applicant2 = em.find(Applicant.class, applicant2.getId());
// verify one changed and one didn't
- assertEquals("Charliex", applicant1.getName());
+ assertEquals("Charliez", applicant1.getName());
assertEquals("Snoopy", applicant2.getName());
em.clear();
@@ -369,6 +368,18 @@ public class TestNativeQueryProcedures e
}
}
+ public void testStoredProcedureQuery() {
+ EntityManager em = emf.createEntityManager();
+ String procedureName = "GET_TWO_APPLICANTS";
+ StoredProcedureQuery query =
em.createStoredProcedureQuery(procedureName);
+ query.setParameter(1, "Charlie");
+ query.setParameter(2, "Snoopy");
+ em.getTransaction().begin();
+ assertNotNull(query);
+ query.getResultList();
+ em.getTransaction().rollback();
+ }
+
/**
* Execute the given non-select SQL via NativeQuery in a transaction.
* @param sp