You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2009/05/18 14:46:53 UTC

svn commit: r775924 - in /openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java

Author: ppoddar
Date: Mon May 18 12:46:53 2009
New Revision: 775924

URL: http://svn.apache.org/viewvc?rev=775924&view=rev
Log:
OPENJPA-703: ORDER BY queries are cachable

Modified:
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java?rev=775924&r1=775923&r2=775924&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java Mon May 18 12:46:53 2009
@@ -172,10 +172,6 @@
                     _resultMapping.isEmbeddedOnly() || _resultClass.length > 1))
                     return false;
             }
-            if (_id.toUpperCase().contains("ORDER BY") ||
-                (_resultMapping == null &&
-                 select.getSelects().size() != _resultClass.length))
-                return false;
         }
         SQLBuffer buffer = selector.getSQL();
         if (buffer == null)

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java?rev=775924&r1=775923&r2=775924&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java Mon May 18 12:46:53 2009
@@ -157,6 +157,20 @@
         assertEquals(jpql,q2.getQueryString());
 	}
 
+	public void testOrderByElementsAbsentInProjection() {
+	    String jpql = "select c.name from Company c ORDER BY c.startYear";
+        OpenJPAEntityManager em = emf.createEntityManager();
+        OpenJPAQuery q1 = em.createQuery(jpql);
+        List l1 = q1.getResultList();
+        
+        PreparedQuery pq = getCache().get(jpql);
+        assertNotNull(pq);
+        OpenJPAQuery q2 = em.createQuery(jpql);
+        List l2 = q2.getResultList();
+        
+        assertEquals(l1.size(), l2.size());
+        assertEquals(l1.toString(), l2.toString());
+	}
 	
 	public void testExclusionPattern() {
 		OpenJPAEntityManager em = emf.createEntityManager();