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) {