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