[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ojb-dev
Subject:    svn commit: r524320 - in
From:       arminw () apache ! org
Date:       2007-03-30 23:14:00
Message-ID: 20070330231401.2B5091A9838 () eris ! apache ! org
[Download RAW message or body]

Author: arminw
Date: Fri Mar 30 16:14:00 2007
New Revision: 524320

URL: http://svn.apache.org/viewvc?view=rev&rev=524320
Log:
introduce new method Query.hasPrefetchedRelationships()

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/IdentityFactory.java
  db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/JdbcAccessImpl.java
  db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/RsIterator.java
  db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/IdentityFactoryImpl.java
  db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/AbstractQueryImpl.java
  db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/Query.java
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/QueryByCriteria.java


Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/IdentityFactory.java
                
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/IdentityFactory.java?view=diff&rev=524320&r1=524319&r2=524320
 ==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/IdentityFactory.java \
                (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/IdentityFactory.java \
Fri Mar 30 16:14:00 2007 @@ -76,23 +76,25 @@
      * Convenience shortcut method for
      * {@link #buildIdentity(java.lang.Class, java.lang.Class, java.lang.String[], \
                java.lang.Object[])}.
      * 
-     * @param realClass     The class of the associated object
+     * @param clazz The class of the persistent object we look for. This can be an \
interface, +     * abstract base class or the real implementation class.
      * @param pkFieldName   The field names of the PK fields
      * @param pkValues      The PK values
      * @return The new <em>Identity</em> object
      */
-    Identity buildIdentity(Class realClass, String[] pkFieldName, Object[] \
pkValues); +    Identity buildIdentity(Class clazz, String[] pkFieldName, Object[] \
pkValues);  
     /**
      * Convenience method for persistent objects with single primary key.
      * NOTE: Do not use for objects with composed PK!
      *
-     * @param realClass The class of the associated object
-     * @param pkValue   The PK value
+     * @param clazz The class of the persistent object we look for. This can be an \
interface, +     * abstract base class or the real implementation class.
+     * @param pkValue   The primary key value.
      * @return The new <em>Identity</em> object
      * @see #buildIdentity(java.lang.Class, java.lang.String[], java.lang.Object[])
      */
-    Identity buildIdentity(Class realClass, Object pkValue);
+    Identity buildIdentity(Class clazz, Object pkValue);
 
     /**
      * Create a new {@link Identity} object based on given arguments - NOTE: There

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/JdbcAccessImpl.java
                
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ \
ojb/broker/accesslayer/JdbcAccessImpl.java?view=diff&rev=524320&r1=524319&r2=524320 \
                ==============================================================================
                
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/JdbcAccessImpl.java \
                (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/JdbcAccessImpl.java \
Fri Mar 30 16:14:00 2007 @@ -24,6 +24,7 @@
 import java.util.Iterator;
 import java.util.Map;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.ojb.broker.Identity;
 import org.apache.ojb.broker.OptimisticLockException;
 import org.apache.ojb.broker.PersistenceBrokerException;
@@ -44,7 +45,6 @@
 import org.apache.ojb.broker.util.logging.Logger;
 import org.apache.ojb.broker.util.logging.LoggerFactory;
 import org.apache.ojb.broker.util.sequence.SequenceManagerException;
-import org.apache.commons.lang.ArrayUtils;
 
 /**
  * JdbcAccess is responsible for establishing performing SQL Queries against remote
@@ -263,17 +263,14 @@
         query.preprocess(broker);
 
         /*
-		 * MBAIRD: we should create a scrollable resultset if the start at
-		 * index or end at index is set
-		 */
-        boolean scrollable = ((query.getStartAtIndex() > Query.NO_START_AT_INDEX) || \
                (query.getEndAtIndex() > Query.NO_END_AT_INDEX));
-        /*
-		 * OR if the prefetching of relationships is being used.
+		  MBAIRD: we should create a scrollable resultset if the start at
+		  index or end at index is set
+		  OR if the prefetching of relationships is being used.
 		 */
-        if (query != null && query.getPrefetchedRelationships() != null && \
                !query.getPrefetchedRelationships().isEmpty())
-        {
-            scrollable = true;
-        }
+        boolean scrollable = (query.getStartAtIndex() > Query.NO_START_AT_INDEX)
+                || (query.getEndAtIndex() > Query.NO_END_AT_INDEX)
+                || query.hasPrefetchedRelationships();
+
         final StatementManagerIF sm = broker.serviceStatementManager();
         final SelectStatement sql = \
broker.serviceSqlGenerator().getPreparedSelectStatement(query, cld);  \
PreparedStatement stmt = null;

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=524320&r1=524319&r2=524320
 ==============================================================================
--- 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 \
Fri Mar 30 16:14:00 2007 @@ -340,7 +340,7 @@
         String relName;
         RelationshipPrefetcher[] prefetchers;
 
-        if (query == null || query.getPrefetchedRelationships() == null || \
query.getPrefetchedRelationships().isEmpty()) +        if (query == null || \
!query.hasPrefetchedRelationships())  {
             return;
         }

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/IdentityFactoryImpl.java
                
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ \
ojb/broker/core/IdentityFactoryImpl.java?view=diff&rev=524320&r1=524319&r2=524320 \
                ==============================================================================
                
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/IdentityFactoryImpl.java \
                (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/IdentityFactoryImpl.java \
Fri Mar 30 16:14:00 2007 @@ -20,6 +20,7 @@
 import org.apache.commons.collections.map.ReferenceIdentityMap;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.SystemUtils;
+import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.ojb.broker.Identity;
 import org.apache.ojb.broker.IdentityFactory;
@@ -177,7 +178,12 @@
         else
         {
             // in other more complex cases we do several check
-            FieldDescriptor[] flds = \
broker.getClassDescriptor(realClass).getPkFields(); +            ClassDescriptor cld \
= broker.getClassDescriptor(realClass); +            \
if(StringUtils.isEmpty(cld.getFullTableName())) +            {
+                cld = cld.getRepository().findFirstConcreteClass(cld);
+            }
+            FieldDescriptor[] flds = cld.getPkFields();
             if(!isOrdered(flds, pkFieldNames))
             {
                 orderedPKValues = reorderFieldValues(flds, pkFieldNames, pkValues);
@@ -243,9 +249,9 @@
     }
 
     /** @see org.apache.ojb.broker.IdentityFactory#buildIdentity(Class, String[], \
                Object[]) */
-    public Identity buildIdentity(final Class realClass, final String[] \
pkFieldNames, final Object[] pkValues) +    public Identity buildIdentity(final Class \
clazz, final String[] pkFieldNames, final Object[] pkValues)  {
-        return buildIdentity(realClass, broker.getTopLevelClass(realClass), \
pkFieldNames, pkValues); +        return buildIdentity(clazz, \
broker.getTopLevelClass(clazz), pkFieldNames, pkValues);  }
 
     /** @see org.apache.ojb.broker.IdentityFactory#buildIdentity(Class, String[], \
Object[]) */ @@ -255,9 +261,9 @@
     }
 
     /** @see org.apache.ojb.broker.IdentityFactory#buildIdentity(Class, Object) */
-    public Identity buildIdentity(final Class realClass, final Object pkValue)
+    public Identity buildIdentity(final Class clazz, final Object pkValue)
     {
-        return buildIdentity(realClass, (String[]) null, new Object[]{pkValue});
+        return buildIdentity(clazz, (String[]) null, new Object[]{pkValue});
     }
 
     /**

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/AbstractQueryImpl.java
                
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/AbstractQueryImpl.java?view=diff&rev=524320&r1=524319&r2=524320
 ==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/AbstractQueryImpl.java \
                (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/AbstractQueryImpl.java \
Fri Mar 30 16:14:00 2007 @@ -119,6 +119,11 @@
         return null;
     }
 
+    public boolean hasPrefetchedRelationships()
+    {
+        return false;
+    }
+
     public Criteria getCriteria()
     {
         return null;

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/Query.java
                
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/Query.java?view=diff&rev=524320&r1=524319&r2=524320
 ==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/Query.java \
                (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/Query.java \
Fri Mar 30 16:14:00 2007 @@ -61,6 +61,13 @@
     public List getPrefetchedRelationships();
 
     /**
+     * Check for prefetched relationships.
+     *
+     * @return <tt>True</tt> if relationships marked for prefetching.
+     */
+    public boolean hasPrefetchedRelationships();
+
+    /**
      * Return the criteria of the query if present or <tt>null</tt>.
      */
     public Criteria getCriteria();

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/QueryByCriteria.java
                
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/QueryByCriteria.java?view=diff&rev=524320&r1=524319&r2=524320
 ==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/QueryByCriteria.java \
                (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/query/QueryByCriteria.java \
Fri Mar 30 16:14:00 2007 @@ -491,11 +491,16 @@
         {
             temp.addAll(getCriteria().getPrefetchedRelationships());
         }
-
         return temp;
     }
 
-	/**
+    public boolean hasPrefetchedRelationships()
+    {
+        return m_prefetchedRelationships.size() > 0 ||
+                (getCriteria() != null && \
getCriteria().getPrefetchedRelationships().size() > 0); +    }
+
+    /**
      * Get a Collection containing all Paths having an Outer-Joins-Setting
      * @return a Collection containing the Paths (Strings)
 	 */



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic