Author: arminw
Date: Thu Aug 2 08:29:31 2007
New Revision: 562135
URL: http://svn.apache.org/viewvc?view=rev&rev=562135
Log:
workaround, by default disable manual prefetching because OJB will always use
prefetching if possible
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java
URL:
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java?view=diff&rev=562135&r1=562134&r2=562135
==============================================================================
---
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java
(original)
+++
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java
Thu Aug 2 08:29:31 2007
@@ -186,11 +186,8 @@
try
{
setRsAndStmt(queryObject.performQuery(broker.serviceJdbcAccess()));
- /*
- * TODO: how does prefetchRelationships handle QueryBySQL
instances? Is
- * it ok to pass query object?
- */
- prefetchRelationships(queryObject.getQuery());
+ // first check if manual prefetching (by using Query settings) is
allowed
+ if(allowManualPrefetching(broker, queryObject.getQuery()))
prefetchRelationships(queryObject.getQuery());
if (logger.isDebugEnabled())
{
logger.debug("RsIterator[" + queryObject + "] initialized");
@@ -329,6 +326,13 @@
return owners;
}
+ protected boolean allowManualPrefetching(PersistenceBrokerInternal broker,
Query query)
+ {
+ // TODO: Is it correct to disable the manual prefetching when
automatic prefetching is enabled?
+ // Fix: Without this check, prefetching is done twice
+ return !(query == null) && query.hasPrefetchedRelationships() &&
!broker.getReferenceBroker().isAutoPrefetch();
+ }
+
/**
* prefetch defined relationships requires JDBC level 2.0, does not work
* with Arrays
@@ -339,11 +343,6 @@
Collection owners;
String relName;
RelationshipPrefetcher[] prefetchers;
-
- if (query == null || !query.hasPrefetchedRelationships())
- {
- return;
- }
if (!supportsAdvancedJDBCCursorControl())
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]