You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by rm...@apache.org on 2015/11/27 16:52:13 UTC
svn commit: r1716891 - in /openjpa/trunk:
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java
openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
Author: rmannibucau
Date: Fri Nov 27 15:52:13 2015
New Revision: 1716891
URL: http://svn.apache.org/viewvc?rev=1716891&view=rev
Log:
OPENJPA-2618 pevent Tuple to pass through in createXQuery methods since we dont support it yet
Added:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java
- copied, changed from r1716854, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
Copied: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java (from r1716854, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java)
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java?p2=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java&p1=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java&r1=1716854&r2=1716891&rev=1716891&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestAbstractSchemaName.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TupleQueryTest.java Fri Nov 27 15:52:13 2015
@@ -18,19 +18,15 @@
*/
package org.apache.openjpa.persistence.query;
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-
import junit.textui.TestRunner;
import org.apache.openjpa.persistence.simple.NamedEntity;
import org.apache.openjpa.persistence.test.SingleEMFTestCase;
-/**
- * Test that we can query by an entity's abstract schema name.
- *
- * @author Abe White
- */
-public class TestAbstractSchemaName
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceException;
+import javax.persistence.Tuple;
+
+public class TupleQueryTest
extends SingleEMFTestCase {
public void setUp() {
@@ -46,17 +42,20 @@ public class TestAbstractSchemaName
em.close();
}
- public void testQuery() {
+ public void testNormalQuery() {
EntityManager em = emf.createEntityManager();
- Query q = em.createQuery("select e from named e");
- NamedEntity e = (NamedEntity) q.getSingleResult();
- assertNotNull(e);
- assertEquals("e", e.getName());
- em.close();
+ try {
+ em.createQuery("select e.name from named e", Tuple.class);
+ fail();
+ } catch (final PersistenceException pe) {
+ // ok
+ } finally {
+ em.close();
+ }
}
public static void main(String[] args) {
- TestRunner.run(TestAbstractSchemaName.class);
+ TestRunner.run(TupleQueryTest.class);
}
}
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=1716891&r1=1716890&r2=1716891&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java Fri Nov 27 15:52:13 2015
@@ -46,6 +46,7 @@ import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.PessimisticLockScope;
import javax.persistence.Query;
+import javax.persistence.Tuple;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.ParameterExpression;
@@ -972,9 +973,16 @@ public class EntityManagerImpl
@SuppressWarnings("unchecked")
public <T> TypedQuery<T> createQuery(String query, Class<T> resultClass) {
+ checkTuple(resultClass);
return createQuery(query).setResultClass(resultClass);
}
-
+
+ private <T> void checkTuple(Class<T> resultClass) {
+ if (Tuple.class == resultClass) {
+ throw new PersistenceException("Tuple is not a valid type", null, null, true);
+ }
+ }
+
public OpenJPAQuery createQuery(String query) {
return createQuery(JPQLParser.LANG_JPQL, query);
}
@@ -1014,6 +1022,7 @@ public class EntityManagerImpl
@SuppressWarnings("unchecked")
public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass) {
+ checkTuple(resultClass);
return createNamedQuery(name).setResultClass(resultClass);
}
@@ -1055,6 +1064,7 @@ public class EntityManagerImpl
}
public OpenJPAQuery createNativeQuery(String query, Class cls) {
+ checkTuple(cls);
return createNativeQuery(query).setResultClass(cls);
}