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/04 19:09:53 UTC

svn commit: r482270 - in /incubator/tuscany/java/das/rdb/src: main/java/org/apache/tuscany/das/rdb/generator/impl/ test/java/org/apache/tuscany/das/rdb/test/

Author: bdaniel
Date: Mon Dec  4 10:09:51 2006
New Revision: 482270

URL: http://svn.apache.org/viewvc?view=rev&rev=482270
Log:
TUSCANY-968 We will now throw an exception to indicate that an invalid FK column has been
specified. 

Modified:
    incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
    incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.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=482270&r1=482269&r2=482270
==============================================================================
--- 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 Mon Dec  4 10:09:51 2006
@@ -135,6 +135,8 @@
                             String key = (String) keys.next();
                             String keyProperty = config.getColumnPropertyName(tw.getTableName(), key);
                             Property keyProp = obj.getType().getProperty(keyProperty);
+                            if ( keyProp == null ) 
+                                throw new RuntimeException("Invalid foreign key column: " + key);
                             if (fields.add(keyProp) == false) {
                                 throw new RuntimeException("Foreign key properties should not be set when the corresponding relationship has changed");
                             }

Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java?view=diff&rev=482270&r1=482269&r2=482270
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java Mon Dec  4 10:09:51 2006
@@ -183,6 +183,8 @@
                         String key = (String) keys.next();
                         String keyProperty = config.getColumnPropertyName(tw.getTableName(), key);
                         Property keyProp = obj.getType().getProperty(keyProperty);
+                        if ( keyProp == null ) 
+                            throw new RuntimeException("Invalid foreign key column: " + key);
                         if (changes.add(keyProp) == false) {
                             throw new RuntimeException("Foreign key properties should not be set when the corresponding relationship has changed");
                         }

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java?view=diff&rev=482270&r1=482269&r2=482270
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java Mon Dec  4 10:09:51 2006
@@ -26,7 +26,9 @@
 import java.sql.SQLException;
 
 import org.apache.tuscany.das.rdb.Command;
+import org.apache.tuscany.das.rdb.ConfigHelper;
 import org.apache.tuscany.das.rdb.DAS;
+import org.apache.tuscany.das.rdb.config.Relationship;
 import org.apache.tuscany.das.rdb.test.data.CustomerData;
 import org.apache.tuscany.das.rdb.test.data.OrderData;
 import org.apache.tuscany.das.rdb.test.framework.DasTest;
@@ -168,4 +170,27 @@
             assertEquals("Foreign key properties should not be set when the corresponding relationship has changed", ex.getMessage());
         }
     }
+    
+    public void testInvalidFKColumn() throws SQLException {
+        ConfigHelper helper = new ConfigHelper();
+        Relationship r = helper.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID_INVALID");
+        r.setName("orders");
+       
+
+        DAS das = DAS.FACTORY.createDAS(helper.getConfig(), getConnection());
+        Command select = das.createCommand("select * from CUSTOMER left join ANORDER "
+                + "ON CUSTOMER.ID = ANORDER.CUSTOMER_ID");
+
+        DataObject root = select.executeQuery();  
+        DataObject cust1 = root.getDataObject("CUSTOMER[1]");  
+        DataObject order = root.createDataObject("ANORDER");
+        order.setInt("ID", 500);
+        cust1.getList("orders").add(order);   
+        try {
+            das.applyChanges(root);
+        } catch (RuntimeException ex) {
+            assertEquals("Invalid foreign key column: CUSTOMER_ID_INVALID", ex.getMessage());
+        }
+    }
+    
 }



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