Hi,

If you have tables with a VARCHAR or TIMESTAMP column as primary key, the 
generated OM code doesn't compile.
Here are some patches to solve these compilation problems:

regards,
Maarten 
Index: Object.vm
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-torque/src/templates/om/Object.vm,v
retrieving revision 1.51
diff -u -r1.51 Object.vm
--- Object.vm   30 Sep 2002 14:27:03 -0000      1.51
+++ Object.vm   9 Oct 2002 12:59:44 -0000
@@ -1221,7 +1221,7 @@
         #elseif($cjtype == "Double")
             set${col.JavaName}(new Double(((NumberKey) key).doubleValue()));
         #elseif($cjtype == "String")
-            set${col.JavaName}(key.toString());
+            set${col.JavaName}(((StringKey)key).getString());
         #elseif($cjtype == "Date")
             set${col.JavaName}(((DateKey)key).getDate());
         #else
@@ -1263,7 +1263,7 @@
         #elseif($cjtype == "Double")
             set${col.JavaName}(new Double(key));
         #elseif($cjtype == "String")
-            set${col.JavaName}($clo.toString());
+            set${col.JavaName}(key);
         #elseif($cjtype == "Date")
             set${col.JavaName}(new Date(key));
         #else
@@ -1314,7 +1314,7 @@
         #elseif($pktype == "Double")
             set${pk.JavaName}(new Double(((NumberKey)keys[$i]).doubleValue()));
         #elseif($pktype == "String")
-            set${pk.JavaName}(keys[$i].toString());
+            set${pk.JavaName}(((StringKey)keys[$i]).getString());
         #elseif($pktype == "Date")
             set${pk.JavaName}(((DateKey)keys[$i]).getDate());
         #end



Index: ObjectWithManager.vm
===================================================================
RCS file: 
/home/cvspublic/jakarta-turbine-torque/src/templates/om/ObjectWithManager.vm,v
retrieving revision 1.26
diff -u -r1.26 ObjectWithManager.vm
--- ObjectWithManager.vm        30 Sep 2002 04:32:04 -0000      1.26
+++ ObjectWithManager.vm        9 Oct 2002 13:00:25 -0000
@@ -1201,7 +1201,7 @@
         #elseif($cjtype == "Double")
             set${col.JavaName}(new Double(((NumberKey)$clo).doubleValue()));
         #elseif($cjtype == "String")
-            set${col.JavaName}($clo.toString());
+            set${col.JavaName}(((StringKey)$clo).getString());
         #elseif($cjtype == "Date")
             set${col.JavaName}(((DateKey)$clo).getDate());
         #else
@@ -1290,7 +1290,7 @@
         #elseif($pktype == "Double")
             set${pk.JavaName}(new Double(((NumberKey)keys[$i]).doubleValue()));
         #elseif($pktype == "String")
-            set${pk.JavaName}(keys[$i].toString());
+            set${pk.JavaName}(((StringKey)keys[$i]).getString());
         #elseif($pktype == "Date")
             set${pk.JavaName}(((DateKey)keys[$i]).getDate());
         #end



Index: SimpleKey.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-turbine-torque/src/java/org/apache/torque/om/SimpleKey.java,v
retrieving revision 1.4
diff -u -r1.4 SimpleKey.java
--- SimpleKey.java      25 Sep 2002 05:46:51 -0000      1.4
+++ SimpleKey.java      9 Oct 2002 13:00:55 -0000
@@ -99,6 +99,16 @@
      * @param key the key value
      * @return a SimpleKey
      */    
+    public static SimpleKey keyFor(double key)
+    {
+        return new NumberKey(key);
+    }
+
+    /**
+     * Creates a SimpleKey equivalent to key
+     * @param key the key value
+     * @return a SimpleKey
+     */    
     public static SimpleKey keyFor(Number key)
     {
         return new NumberKey(key);




Index: NumberKey.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-turbine-torque/src/java/org/apache/torque/om/NumberKey.java,v
retrieving revision 1.12
diff -u -r1.12 NumberKey.java
--- NumberKey.java      24 Sep 2002 04:50:08 -0000      1.12
+++ NumberKey.java      9 Oct 2002 13:01:13 -0000
@@ -110,6 +110,14 @@
 
     /**
      * Creates a NumberKey equivalent to <code>key</code>.
+     */
+    public NumberKey(double key)
+    {
+        this.key = new BigDecimal(key);
+    }
+
+    /**
+     * Creates a NumberKey equivalent to <code>key</code>.
      * Convenience only. Not very efficient at all.
      */
     public NumberKey(int key)

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to