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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to