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]