You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by bd...@apache.org on 2006/12/05 19:28:34 UTC

svn commit: r482731 - in /incubator/tuscany/java/das/rdb/src: main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java

Author: bdaniel
Date: Tue Dec  5 10:28:33 2006
New Revision: 482731

URL: http://svn.apache.org/viewvc?view=rev&rev=482731
Log:
TUSCANY-957 DAS will no longer generate a partial update statement when no fields are set. Instead, 
it will generate an update statement containing each of the DataObject's dataType properties. The 
values will all be null (as they are in the DataObject instance.)

Modified:
    incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java

Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java?view=diff&rev=482731&r1=482730&r2=482731
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java Tue Dec  5 10:28:33 2006
@@ -54,17 +54,25 @@
         StringBuffer statement = new StringBuffer("insert into ");
         statement.append(t.getTableName());
 
-        Iterator i = getAttributeProperties(changedObject, config, table).iterator();
+        HashSet changedProperties = getAttributeProperties(changedObject, config, table);
+        Iterator i;
+        if ( changedProperties.isEmpty() ) {
+            i = changedObject.getType().getProperties().iterator();
+        } else {
+            i = changedProperties.iterator();
+        }
 
         List attributes = new ArrayList();
         List generatedKeys = new ArrayList();
         while (i.hasNext()) {
             Property attr = (Property) i.next();
-            if (table.isGeneratedColumnProperty(attr.getName())) {
-                generatedKeys.add(attr.getName());
-            } else {
-                attributes.add(attr.getName());
-                parameters.add(changedObject.getType().getProperty(attr.getName()));
+            if ( attr.getType().isDataType()) {
+                if (table.isGeneratedColumnProperty(attr.getName())) {
+                 generatedKeys.add(attr.getName());
+             } else {
+                 attributes.add(attr.getName());
+                    parameters.add(changedObject.getType().getProperty(attr.getName()));
+             }
             }
         }
 

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java?view=diff&rev=482731&r1=482730&r2=482731
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java Tue Dec  5 10:28:33 2006
@@ -129,6 +129,26 @@
         }
 
     }
+    
+    /** 
+     * Test insert into row with generated ID and no attributes set 
+     */ 
+    public void testInsert5() throws Exception { 
+
+        DAS das = DAS.FACTORY.createDAS(getConfig("CompanyConfig.xml"), getConnection()); 
+        Command select = das.getCommand("all companies"); 
+        DataObject root = select.executeQuery(); 
+
+        root.createDataObject("COMPANY"); 
+
+        das.applyChanges(root); 
+
+        // Verify insert 
+        root = select.executeQuery(); 
+        assertEquals(4, root.getList("COMPANY").size()); 
+
+    } 
+
 
     // Test ability to propogate generated values back to owning data objects
     public void testPropagateIds() throws Exception {



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org