You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2007/09/02 22:19:49 UTC

svn commit: r572141 - /cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaQuery.java

Author: aadamchik
Date: Sun Sep  2 13:19:48 2007
New Revision: 572141

URL: http://svn.apache.org/viewvc?rev=572141&view=rev
Log:
support for setMaxResults (now really fixing it)

Modified:
    cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaQuery.java

Modified: cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaQuery.java?rev=572141&r1=572140&r2=572141&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jpa-unpublished/src/main/java/org/apache/cayenne/jpa/JpaQuery.java Sun Sep  2 13:19:48 2007
@@ -152,21 +152,27 @@
             throw new IllegalArgumentException("Invalid max results value: " + maxResult);
         }
 
-        // TODO: use QueryMetadata?
-        if (getQuery() instanceof EJBQLQuery) {
-            ((EJBQLQuery) getQuery()).setFetchLimit(maxResult);
+        Object query = getQuery();
+
+        // the first two types are probably the only queries anyone would run via JPA
+        if (query instanceof EJBQLQuery) {
+            ((EJBQLQuery) query).setFetchLimit(maxResult);
         }
-        else if (getQuery() instanceof SelectQuery) {
-            ((SelectQuery) getQuery()).setFetchLimit(maxResult);
+        else if (query instanceof SQLTemplate) {
+            ((SQLTemplate) query).setFetchLimit(maxResult);
         }
-        else if (getQuery() instanceof SQLTemplate) {
-            ((SQLTemplate) getQuery()).setFetchLimit(maxResult);
+        else if (query instanceof SelectQuery) {
+            ((SelectQuery) query).setFetchLimit(maxResult);
         }
-        else if (getQuery() instanceof ProcedureQuery) {
-            ((ProcedureQuery) getQuery()).setFetchLimit(maxResult);
+        else if (query instanceof ProcedureQuery) {
+            ((ProcedureQuery) query).setFetchLimit(maxResult);
         }
-
-        throw new IllegalArgumentException("query does not support maxResult");
+        else {
+            throw new IllegalArgumentException("query does not support maxResult: "
+                    + query);
+        }
+        
+        return this;
     }
 
     public Query setFlushMode(FlushModeType flushModeType) {