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/07/15 16:17:30 UTC

svn commit: r422228 [2/2] - in /db/ojb/trunk: ./ src/java/org/apache/ojb/broker/accesslayer/ src/java/org/apache/ojb/broker/accesslayer/conversions/ src/java/org/apache/ojb/broker/accesslayer/sql/

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/StringList2VarcharFieldConversion.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/StringList2VarcharFieldConversion.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/StringList2VarcharFieldConversion.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/StringList2VarcharFieldConversion.java Sat Jul 15 07:17:29 2006
@@ -15,119 +15,22 @@
  * limitations under the License.
  */
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang.StringUtils;
 
 /**
  * This implementation of the {@link FieldConversion} interface converts
  * between a {@link java.util.List} of {@link java.lang.String} objects and a database
  * <em>varchar</em> field.
  * <br/>
- * Strings may not contain "#" as this is used as separator.
+ * Strings may not contain <em>"#"</em> (at the beginning and end of a string) as this is
+ * used as separator.
+ * Additionally this implementation use keywords for "blank string" and 'null' list entires, thus Strings may
+ * not contain keywords <em>"+.EmPtY.+"</em> and <em>"+.NuLl.+"</em>.
  *
- * @author Guillaume Nodet
  * @version $Id$
  */
-public class StringList2VarcharFieldConversion implements FieldConversion
+public class StringList2VarcharFieldConversion extends AbstractList2VarcharConversion
 {
-
-    private static final String NULLVALUE = "#NULL#";
-    private static final String EMPTYCOLLEC = "#EMTPY#";
-
     public StringList2VarcharFieldConversion()
     {
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.ojb.broker.accesslayer.conversions.FieldConversion#javaToSql(java.lang.Object)
-     */
-    public Object javaToSql(Object source) throws ConversionException
-    {
-
-        if (source == null)
-        {
-            return NULLVALUE;
-        }
-
-        try
-        {
-            List stringList = (List) source;
-            if (stringList.isEmpty())
-            {
-                return NULLVALUE;
-            }
-
-            StringBuffer result = new StringBuffer();
-            for (int i = 0; i < stringList.size(); i++)
-            {
-                String newSt = (String) stringList.get(i);
-                // introduced in JDK 1.4, replace with commons-lang
-                // newSt = newSt.replaceAll("#", "##");
-                newSt = StringUtils.replace(newSt, "#", "##");
-                if (i > 0)
-                {
-                    result.append("#");
-                }
-                result.append(newSt);
-            }
-            return result.toString();
-        }
-        catch (ClassCastException e)
-        {
-            throw new ConversionException("Object is not a List of String it is a"
-                    + source.getClass().getName());
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.ojb.broker.accesslayer.conversions.FieldConversion#sqlToJava(java.lang.Object)
-     */
-    public Object sqlToJava(Object source) throws ConversionException
-    {
-        if (source == null)
-        {
-            return null;
-        }
-        if (source.toString().equals(NULLVALUE))
-        {
-            return null;
-        }
-        if (source.toString().equals(EMPTYCOLLEC))
-        {
-            return new ArrayList();
-        }
-        List v = new ArrayList();
-        StringBuffer input = new StringBuffer();
-        StringBuffer newString = new StringBuffer();
-        int pos = 0;
-        int length;
-
-        input.append(source.toString());
-        length = input.length();
-        while (pos < length)
-        {
-            if (input.charAt(pos) != '#')
-            {
-                newString.append(input.charAt(pos));
-            }
-            else
-            {
-                if (input.charAt(pos + 1) != '#')
-                {
-                    v.add(newString.toString());
-                    newString = new StringBuffer();
-                }
-                else
-                {
-                    newString.append('#');
-                    ++pos;
-                }
-            }
-            ++pos;
-        }
-        v.add(newString.toString());
-        return v;
     }
 }

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/StringVector2VarcharFieldConversion.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/StringVector2VarcharFieldConversion.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/StringVector2VarcharFieldConversion.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/StringVector2VarcharFieldConversion.java Sat Jul 15 07:17:29 2006
@@ -16,108 +16,33 @@
  */
 
 import java.util.Vector;
+import java.util.List;
 
 /**
  * Converts a Vector of string elements back and forth from a database varchar field
  * Strings may not contain "#" as this is used as separator.
- * This class maybe useful if it's important to have the string vector stored in a 
+ * This class maybe useful if it's important to have the string vector stored in a
  * human readable form that allows editing.
+ *  <br/>
+ * Strings may not contain <em>"#"</em> (at the beginning and end of a string) as this is
+ * used as separator.
+ * Additionally this implementation use keywords for "blank string" and 'null' list entires, thus Strings may
+ * not contain keywords <em>"+.EmPtY.+"</em> and <em>"+.NuLl.+"</em>.
+ *
  * @see Object2ByteArrFieldConversion uses Java serialization and is not suited for
- * this purpose. 
- * 
- * @author  sschloesser  mailto: stefan.schl@gmx.de 
+ * this purpose.
  * @version $Id$
  */
-public class StringVector2VarcharFieldConversion implements FieldConversion
+public class StringVector2VarcharFieldConversion extends AbstractList2VarcharConversion
 {
 
-    private static final String NULLVALUE = "#NULL#";
-    private static final String EMPTYCOLLEC = "#EMTPY#";
-    private static final String SEPARATOR = "#";
-
     /** Creates a new instance of StringVector2VarcharFieldConversion */
     public StringVector2VarcharFieldConversion()
     {
     }
 
-    public Object javaToSql(Object obj)
-        throws org.apache.ojb.broker.accesslayer.conversions.ConversionException
+    protected List newList()
     {
-
-        if (obj == null)
-        {
-            return NULLVALUE;
-        }
-
-        if (!(obj instanceof Vector))
-        {
-            throw new ConversionException(
-                "Object is not a vector it is a" + obj.getClass().getName());
-        }
-
-        Vector v = (Vector) obj;
-        if (v.size() == 0)
-        {
-            return EMPTYCOLLEC;
-        }
-
-        StringBuffer result = new StringBuffer();
-        for (int i = 0; i < v.size(); i++)
-        {
-            String newSt = v.get(i).toString();
-            if (newSt.indexOf(SEPARATOR) >= 0)
-            {
-                throw new ConversionException(
-                    "An entry in the Vector contains the forbidden "
-                        + SEPARATOR
-                        + " character used to separate the strings on the DB");
-            }
-            result.append(newSt);
-            result.append(SEPARATOR);
-        }
-        return result.toString();
-    }
-
-    public Object sqlToJava(Object obj)
-        throws org.apache.ojb.broker.accesslayer.conversions.ConversionException
-    {
-
-        if (obj == null)
-        {
-            return null;
-        }
-        if (obj.toString().equals(NULLVALUE))
-        {
-            return null;
-        }
-        if (obj.toString().equals(EMPTYCOLLEC))
-        {
-            return new Vector();
-        }
-
-        Vector v = new Vector();
-        String input = obj.toString();
-        int pos = input.indexOf(SEPARATOR);
-
-        while (pos >= 0)
-        {
-            if (pos == 0)
-            {
-                v.add("");
-            }
-            else
-            {
-                v.add(input.substring(0, pos));
-            }
-
-            if (pos + 1 > input.length()) //# at end causes outof bounds
-            {
-                break;
-            }
-
-            input = input.substring(pos + 1, input.length());
-            pos = input.indexOf(SEPARATOR);
-        }
-        return v;
+        return new Vector();
     }
 }

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/TimeList2VarcharFieldConversion.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/TimeList2VarcharFieldConversion.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/TimeList2VarcharFieldConversion.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/conversions/TimeList2VarcharFieldConversion.java Sat Jul 15 07:17:29 2006
@@ -16,108 +16,47 @@
  */
 
 import java.sql.Time;
-import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
-
 /**
  * This implementation of the {@link FieldConversion} interface converts
  * between a {@link java.util.List} of {@link java.sql.Time} objects and a database
  * <em>varchar</em> field.
  *
- * @author Guillaume Nodet
  * @version $Id$
  */
-public class TimeList2VarcharFieldConversion implements FieldConversion
+public class TimeList2VarcharFieldConversion extends AbstractList2VarcharConversion
 {
-
-    private static final String NULLVALUE = "#NULL#";
-    private static final String EMPTYCOLLEC = "#EMTPY#";
-
     public TimeList2VarcharFieldConversion()
     {
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.ojb.broker.accesslayer.conversions.FieldConversion#javaToSql(java.lang.Object)
-     */
-    public Object javaToSql(Object source) throws ConversionException
+    protected void addEntryToList(List resultList, String strEntry)
     {
-        if (source == null)
-        {
-            return NULLVALUE;
-        }
-
-        try
+        boolean old = strEntry.indexOf(":") > 0;
+        String value = checkResult(strEntry);
+        // backward compatible for string of form 01:00:00
+        if(old)
         {
-            List timeList = (List) source;
-            if (timeList.isEmpty())
-            {
-                return NULLVALUE;
-            }
-
-            StringBuffer result = new StringBuffer();
-            for (int i = 0; i < timeList.size(); i++)
-            {
-                Time obj = (Time) timeList.get(i);
-                String newSt = obj.toString();
-                // introduced in JDK 1.4, replace with commons-lang
-                // newSt = newSt.replaceAll("#", "##");
-                newSt = StringUtils.replace(newSt, "#", "##");
-                result.append(newSt);
-                result.append("#");
-            }
-            return result.toString();
+            resultList.add(value != null ? Time.valueOf(value) : null);
         }
-        catch (ClassCastException e)
+        // the new version with millisecond precision
+        else
         {
-            throw new ConversionException("Object is not a List of Time it is a" + source.getClass().getName());
+            resultList.add(value != null ? new Time(Long.parseLong(value)) : null);
         }
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.ojb.broker.accesslayer.conversions.FieldConversion#sqlToJava(java.lang.Object)
-     */
-    public Object sqlToJava(Object source) throws ConversionException
+    protected String convertListEntryToString(Object entry)
     {
-        if (source == null)
+        if(entry != null)
         {
-            return null;
+            // use #getTime instead of #toString to avoid data corruption
+            return Long.toString(((Time) entry).getTime());
         }
-        if (source.toString().equals(NULLVALUE))
+        else
         {
             return null;
         }
-        if (source.toString().equals(EMPTYCOLLEC))
-        {
-            return new ArrayList();
-        }
-
-        List v = new ArrayList();
-        String input = source.toString();
-        int pos = input.indexOf("#");
-
-        while (pos >= 0)
-        {
-            if (pos == 0)
-            {
-                v.add("");
-            }
-            else
-            {
-                v.add(Time.valueOf(input.substring(0, pos)));
-            }
-
-            if (pos + 1 > input.length())
-            {
-                //# at end causes outof bounds
-                break;
-            }
-
-            input = input.substring(pos + 1, input.length());
-            pos = input.indexOf("#");
-        }
-        return v;
     }
 }

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlExistStatement.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlExistStatement.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlExistStatement.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlExistStatement.java Sat Jul 15 07:17:29 2006
@@ -25,7 +25,6 @@
  * Generate a select to check existence of an object.
  * Something like "SELECT id_1 FROM myTable where id_1 = 123 and id_2 = 'kjngzt'".
  *
- * @author <a href="mailto:arminw@apache.org">Armin Waibel</a>
  * @version $Id$
  */
 public class SqlExistStatement extends SqlPkStatement

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java Sat Jul 15 07:17:29 2006
@@ -40,15 +40,12 @@
  * This Class is responsible for building sql statements
  * Objects fields and their repective values are accessed by Java reflection
  *
- * @author <a href="mailto:thma@apache.org">Thomas Mahler<a>
- * @author <a href="mailto:rgallagh@bellsouth.net">Ron Gallagher</a>
- * @author <a href="mailto:rburt3@mchsi.com">Randall Burt</a>
  * @version $Id$
  */
 public class SqlGeneratorDefaultImpl implements SqlGenerator
 {
-    private Logger m_logger = LoggerFactory.getLogger(SqlGeneratorDefaultImpl.class);
-    private Platform m_platform;
+    private Logger logger = LoggerFactory.getLogger(SqlGeneratorDefaultImpl.class);
+    private Platform platform;
     /*
     arminw:
     TODO: In ClassDescriptor we need support for "field change event" listener if we allow
@@ -65,7 +62,7 @@
 
     public SqlGeneratorDefaultImpl(Platform platform)
     {
-        m_platform = platform;
+        this.platform = platform;
     }
 
     /** @see SqlGenerator#getGenericPreparedStatement(int, String, String[], String[]) */
@@ -92,41 +89,41 @@
 
     private SqlStatement buildGenericDelete(String table, String[] whereClauseColumns)
     {
-        SqlStatement result = (new SqlGenericDeleteStatement(m_platform, m_logger, table, whereClauseColumns));
+        SqlStatement result = (new SqlGenericDeleteStatement(platform, logger, table, whereClauseColumns));
 
-        if(m_logger.isDebugEnabled())
+        if(logger.isDebugEnabled())
         {
-            m_logger.debug("SQL:" + result.getStatement());
+            logger.debug("SQL:" + result.getStatement());
         }
         return result;
     }
 
     private SqlStatement buildGenericInsert(String table, String[] affectedColumns)
     {
-        SqlStatement sql = new SqlGenericInsertStatement(m_platform, m_logger, table, affectedColumns);
-        if(m_logger.isDebugEnabled())
+        SqlStatement sql = new SqlGenericInsertStatement(platform, logger, table, affectedColumns);
+        if(logger.isDebugEnabled())
         {
-            m_logger.debug("SQL:" + sql.getStatement());
+            logger.debug("SQL:" + sql.getStatement());
         }
         return sql;
     }
 
     private SqlStatement buildGenericSelect(String table, String[] affectedColumns, String[] whereClauseColumns)
     {
-        SqlStatement sql = new SqlGenericSelectStatement(m_platform, m_logger, table, affectedColumns, whereClauseColumns);
-        if(m_logger.isDebugEnabled())
+        SqlStatement sql = new SqlGenericSelectStatement(platform, logger, table, affectedColumns, whereClauseColumns);
+        if(logger.isDebugEnabled())
         {
-            m_logger.debug("SQL: " + sql.getStatement());
+            logger.debug("SQL: " + sql.getStatement());
         }
         return sql;
     }
 
     private SqlStatement buildGenericUpdate(String table, String[] affectedColumns, String[] whereClauseColumns)
     {
-        SqlStatement result = (new SqlGenericUpdateStatement(m_platform, m_logger, table, affectedColumns, whereClauseColumns));
-        if(m_logger.isDebugEnabled())
+        SqlStatement result = (new SqlGenericUpdateStatement(platform, logger, table, affectedColumns, whereClauseColumns));
+        if(logger.isDebugEnabled())
         {
-            m_logger.debug("SQL:" + result.getStatement());
+            logger.debug("SQL:" + result.getStatement());
         }
         return result;
     }
@@ -143,23 +140,22 @@
         SqlStatement sql = sfc.getDeleteSql();
         if(sql == null)
         {
-
             ProcedureDescriptor pd = cld.getDeleteProcedure();
 
             if(pd == null)
             {
-                sql = new SqlDeleteByPkStatement(m_platform, m_logger, cld);
+                sql = new SqlDeleteByPkStatement(platform, logger, cld);
             }
             else
             {
-                sql = new SqlProcedureStatement(pd, m_logger);
+                sql = new SqlProcedureStatement(pd, logger);
             }
             // set the sql string
             sfc.setDeleteSql(sql);
 
-            if(m_logger.isDebugEnabled())
+            if(logger.isDebugEnabled())
             {
-                m_logger.debug("SQL:" + sql.getStatement());
+                logger.debug("SQL:" + sql.getStatement());
             }
         }
         return sql;
@@ -182,18 +178,18 @@
 
             if(pd == null)
             {
-                sql = new SqlInsertStatement(m_platform, m_logger, cld);
+                sql = new SqlInsertStatement(platform, logger, cld);
             }
             else
             {
-                sql = new SqlProcedureStatement(pd, m_logger);
+                sql = new SqlProcedureStatement(pd, logger);
             }
             // set the sql string
             sfc.setInsertSql(sql);
 
-            if(m_logger.isDebugEnabled())
+            if(logger.isDebugEnabled())
             {
-                m_logger.debug("SQL:" + sql.getStatement());
+                logger.debug("SQL:" + sql.getStatement());
             }
         }
         return sql;
@@ -214,19 +210,19 @@
             ProcedureDescriptor pd = cld.getSelectByPKProcedure();
             if(pd == null)
             {
-                sql = new SqlSelectByPkStatement(m_platform, m_logger, cld);
+                sql = new SqlSelectByPkStatement(platform, logger, cld);
             }
             else
             {
-                sql = new SqlProcedureStatement(pd, m_logger);
+                sql = new SqlProcedureStatement(pd, logger);
             }
 
             // set the sql string
             sfc.setSelectByPKSql(sql);
 
-            if(m_logger.isDebugEnabled())
+            if(logger.isDebugEnabled())
             {
-                m_logger.debug("SQL:" + sql.getStatement());
+                logger.debug("SQL:" + sql.getStatement());
             }
         }
         return sql;
@@ -240,12 +236,12 @@
         if(sql == null)
         {
             // TODO: Should we support a procedure call for this too??
-            sql = new SqlExistStatement(m_platform, m_logger, cld);
+            sql = new SqlExistStatement(platform, logger, cld);
             // set the sql string
             sfc.setSelectExists(sql);
-            if(m_logger.isDebugEnabled())
+            if(logger.isDebugEnabled())
             {
-                m_logger.debug("SQL:" + sql.getStatement());
+                logger.debug("SQL:" + sql.getStatement());
             }
         }
         return sql;
@@ -265,17 +261,17 @@
         if((query instanceof QueryByExample) && (pd != null))
         {
             // Special case for QueryByExample and SelectByFKProcedure
-            sql = new SqlProcedureFKStatement(pd, (QueryByExample) query, m_logger);
+            sql = new SqlProcedureFKStatement(pd, (QueryByExample) query, logger);
         }
         else
         {
             // All other queries
-            sql = new SqlSelectStatement(m_platform, m_logger, cld, query);
+            sql = new SqlSelectStatement(platform, logger, cld, query);
         }
 
-        if (m_logger.isDebugEnabled())
+        if (logger.isDebugEnabled())
         {
-            m_logger.debug("SQL:" + sql.getStatement());
+            logger.debug("SQL:" + sql.getStatement());
         }
 
         return sql;
@@ -289,7 +285,7 @@
      */
     public SelectStatement getPreparedSelectPkStatement(Query query, ClassDescriptor cld)
     {
-        return new SqlSelectPkStatement(m_platform, m_logger, cld, query);
+        return new SqlSelectPkStatement(platform, logger, cld, query);
     }
 
     /**
@@ -300,7 +296,7 @@
      */
     public SqlStatement getPreparedDeleteStatement(Query query, ClassDescriptor cld)
     {
-        return new SqlDeleteByQuery(m_platform, m_logger, cld, query);
+        return new SqlDeleteByQuery(platform, logger, cld, query);
     }
 
     /**
@@ -319,18 +315,18 @@
 
             if(pd == null)
             {
-                result = new SqlUpdateStatement(m_platform, m_logger, cld);
+                result = new SqlUpdateStatement(platform, logger, cld);
             }
             else
             {
-                result = new SqlProcedureStatement(pd, m_logger);
+                result = new SqlProcedureStatement(pd, logger);
             }
             // set the sql string
             sfc.setUpdateSql(result);
 
-            if(m_logger.isDebugEnabled())
+            if(logger.isDebugEnabled())
             {
-                m_logger.debug("SQL:" + result.getStatement());
+                logger.debug("SQL:" + result.getStatement());
             }
         }
         return result;
@@ -382,11 +378,11 @@
             }
             if(result == null)
             {
-                result = new SqlUpdateFieldsStatement(m_platform, m_logger, cld, fields);
+                result = new SqlUpdateFieldsStatement(platform, logger, cld, fields);
                 sfc.setLastUsedUpdateFieldsSql((SqlUpdateFieldsStatement) result);
             }
         }
-        if(m_logger.isDebugEnabled()) m_logger.debug("SQL:" + result.getStatement());
+        if(logger.isDebugEnabled()) logger.debug("SQL:" + result.getStatement());
         return result;
     }
 
@@ -580,7 +576,7 @@
     /** @return Returns the platform. */
     public Platform getPlatform()
     {
-        return m_platform;
+        return platform;
     }
 
     /**
@@ -690,4 +686,5 @@
             this.selectExists = selectExists;
         }
     }
+
 }

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlInsertStatement.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlInsertStatement.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlInsertStatement.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlInsertStatement.java Sat Jul 15 07:17:29 2006
@@ -26,7 +26,6 @@
 /**
  * Model an INSERT Statement
  *
- * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
  * @version $Id$
  */
 public class SqlInsertStatement extends SqlPkStatement
@@ -103,5 +102,6 @@
         }
         stmt.append(") ");
     }
+
 }
 

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java Sat Jul 15 07:17:29 2006
@@ -261,7 +261,6 @@
      * @param anAttrInfo the name of the attribute
      * @param translate
      * @param buf the Buffer
-     * @return The column name.
      */
     protected void appendColumn(SingleAttributeInfo anAttrInfo, boolean translate, StringBuffer buf)
     {

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectByPkStatement.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectByPkStatement.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectByPkStatement.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectByPkStatement.java Sat Jul 15 07:17:29 2006
@@ -26,13 +26,13 @@
 /**
  * Model a SELECT Statement by Primary Key
  * 
- * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
  * @version $Id$
  */
 public class SqlSelectByPkStatement extends SqlSelectStatement
 {
     /**
      * Constructor for SqlSelectByPkStatement.
+     *
      * @param cld
      * @param logger
      */

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java?rev=422228&r1=422227&r2=422228&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/accesslayer/sql/SqlSelectStatement.java Sat Jul 15 07:17:29 2006
@@ -39,7 +39,6 @@
 /**
  * Model a SELECT Statement
  *
- * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
  * @version $Id$
  */
 public class SqlSelectStatement extends SqlQueryStatement implements SelectStatement
@@ -166,13 +165,13 @@
         }
         buf.append(" ELSE '").append(cld.getClassNameOfObject()).append("'");
         buf.append(" END AS " + SqlHelper.OJB_CLASS_COLUMN);
-
         // signal the use of the ojbClassColumn
         setUseOjbClassColumn(true);
     }
 
     /**
      * Return the Fields to be selected.
+     *
      * @return the Fields to be selected
      */
     protected FieldDescriptor[] getFieldsForSelect()
@@ -186,6 +185,7 @@
 
     /**
      * Return the Fields to be selected.
+     *
      * @param cld the ClassDescriptor
      * @return the Fields to be selected
      */
@@ -230,6 +230,7 @@
     
     /**
      * Appends to the statement a comma separated list of column names.
+     *
      * @param columns defines the columns to be selected (for reports)
      * @return list of column names
      */
@@ -458,6 +459,16 @@
      */
     public boolean isUseOjbClassColumn()
     {
+        // BRJ: force generation of sql-string.
+        //
+        // this is a workaraoundd for the problem described
+        // in InheritanceMultipleTableTest#testLookupByIdentity_2
+        // the problem is caused by JdbcAccessImpl#materializeObject not caching
+        // the SqlSelectStatement and passing an 'empty' SqlSelectStatement to ResultSetAndStatement
+        //
+        // TODO: remove this workaround for ojb 1.x
+        getStatement();
+
         return useOjbClassColumn;
     }
 



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