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 2009/09/06 13:15:06 UTC
svn commit: r811810 - in /cayenne/main/trunk: docs/doc/src/main/resources/
framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/
framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/
Author: aadamchik
Date: Sun Sep 6 11:15:06 2009
New Revision: 811810
URL: http://svn.apache.org/viewvc?rev=811810&view=rev
Log:
CAY-1268 Implement 'setStatementFetchSize' for RelationshipQuery
Modified:
cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/RelationshipQuery.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/StatementFetchSizeTest.java
Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=811810&r1=811809&r2=811810&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Sun Sep 6 11:15:06 2009
@@ -25,6 +25,7 @@
CAY-1241 Add method to ExpressionFactory to match against the primary key of an object or list of objects
CAY-1254 filtering an inExp(a, b) does not work when the path (a) refers to a collection of objects
CAY-1261 Auto-inject values in NEW objects with declared qualifiers
+CAY-1268 Implement 'setStatementFetchSize' for RelationshipQuery
Bug Fixes Since M6:
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/RelationshipQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/RelationshipQuery.java?rev=811810&r1=811809&r2=811810&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/RelationshipQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/RelationshipQuery.java Sun Sep 6 11:15:06 2009
@@ -42,6 +42,7 @@
protected ObjectId objectId;
protected String relationshipName;
protected boolean refreshing;
+ protected int statementFetchSize;
protected transient EntityResolver metadataResolver;
protected transient QueryMetadata metadata;
@@ -121,7 +122,11 @@
Expression qualifier = ExpressionFactory.matchDbExp(relationship
.getReverseDbRelationshipPath(), objectId);
- return new SelectQuery((ObjEntity) relationship.getTargetEntity(), qualifier);
+ SelectQuery query = new SelectQuery(
+ (ObjEntity) relationship.getTargetEntity(),
+ qualifier);
+ query.setStatementFetchSize(statementFetchSize);
+ return query;
}
/**
@@ -170,6 +175,11 @@
public ClassDescriptor getClassDescriptor() {
return arc.getTargetDescriptor();
}
+
+ @Override
+ public int getStatementFetchSize() {
+ return statementFetchSize;
+ }
};
this.metadataResolver = resolver;
@@ -177,6 +187,23 @@
}
/**
+ * Sets statement's fetch size (0 for no default size)
+ *
+ * @since 3.0
+ */
+ public void setStatementFetchSize(int size) {
+ this.statementFetchSize = size;
+ }
+
+ /**
+ * @return statement's fetch size
+ * @since 3.0
+ */
+ public int getStatementFetchSize() {
+ return statementFetchSize;
+ }
+
+ /**
* Overrides toString() outputting a short string with query class and relationship
* name.
*/
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/StatementFetchSizeTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/StatementFetchSizeTest.java?rev=811810&r1=811809&r2=811810&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/StatementFetchSizeTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/StatementFetchSizeTest.java Sun Sep 6 11:15:06 2009
@@ -19,6 +19,7 @@
package org.apache.cayenne.query;
import org.apache.art.Artist;
+import org.apache.cayenne.ObjectId;
import org.apache.cayenne.access.DataContext;
import org.apache.cayenne.unit.CayenneCase;
@@ -43,5 +44,12 @@
assertEquals(10, ejbql.getMetaData(dataContext.getEntityResolver()).getStatementFetchSize());
dataContext.performQuery(ejbql);
+
+ ObjectId id = new ObjectId("Artist", Artist.ARTIST_ID_PK_COLUMN, 1);
+ RelationshipQuery relationshipQuery = new RelationshipQuery(id, Artist.PAINTING_ARRAY_PROPERTY, true);
+ relationshipQuery.setStatementFetchSize(10);
+
+ assertEquals(10, relationshipQuery.getMetaData(dataContext.getEntityResolver()).getStatementFetchSize());
+ dataContext.performQuery(relationshipQuery);
}
}