You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2006/12/22 02:03:24 UTC

svn commit: r489533 - /db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/StatementManager.java

Author: arminw
Date: Thu Dec 21 17:03:23 2006
New Revision: 489533

URL: http://svn.apache.org/viewvc?view=rev&rev=489533
Log:
change Platform instance lookup, explicit lookup of PK fields to extract PK ValueContainer

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/StatementManager.java

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/StatementManager.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/StatementManager.java?view=diff&rev=489533&r1=489532&r2=489533
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/StatementManager.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/StatementManager.java Thu Dec 21 17:03:23 2006
@@ -35,7 +35,6 @@
 import org.apache.ojb.broker.metadata.ProcedureDescriptor;
 import org.apache.ojb.broker.platforms.Platform;
 import org.apache.ojb.broker.platforms.PlatformException;
-import org.apache.ojb.broker.platforms.PlatformFactory;
 import org.apache.ojb.broker.query.BetweenCriteria;
 import org.apache.ojb.broker.query.Criteria;
 import org.apache.ojb.broker.query.ExistsCriteria;
@@ -67,7 +66,7 @@
     {
         this.m_broker = pBroker;
         this.m_conMan = m_broker.serviceConnectionManager();
-        m_platform = PlatformFactory.getPlatformFor(m_conMan.getConnectionDescriptor());
+        m_platform = m_conMan.getConnectionDescriptor().getPlatform();
     }
 
     public void closeResources(Statement stmt, ResultSet rs)
@@ -641,7 +640,10 @@
      */
     protected ValueContainer[] getKeyValues(PersistenceBroker broker, ClassDescriptor cld, Object obj) throws PersistenceBrokerException
     {
-        return broker.serviceBrokerHelper().getKeyValues(cld, obj);
+        //return broker.serviceBrokerHelper().getKeyValues(cld, obj);
+        // use the PK fields of the specified CLD, this is mandatory when using "table per subclass" inheritance
+        // cause in this case the PK fields can be differ.
+        return broker.serviceBrokerHelper().getValuesForObject(cld.getPkFields(), obj, true, false);
     }
 
     /**
@@ -682,7 +684,7 @@
 
         // Figure out if we are using a callable statement.  If we are, then we
         // will need to register one or more output parameters.
-        CallableStatement callable = null;
+        CallableStatement callable;
         try
         {
             callable = (CallableStatement) stmt;



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