TUSCANY-3088 - Applying patch with fixes to the following items :
- MappingWrapper.addImpliedRelationship(): SQL table names are case-insensitive
- MappingWrapper.getRelationshipByReference(): if 2 relationships have the same name, must check the containing type of the reference
- ResultMetadata: the structure of tableToPropertyMap is (table type name, list of property names), not (table name, list of property names)
git-svn-id: https://svn.apache.org/repos/asf/tuscany/java/das@783448 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java b/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
index 49ed64a..6386df1 100644
--- a/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
+++ b/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
@@ -150,7 +150,7 @@
Iterator i = config.getRelationship().iterator();
while (i.hasNext()) {
Relationship r = (Relationship) i.next();
- if (r.getPrimaryKeyTable().equals(parentTableName) && r.getForeignKeyTable().equals(childTableName)) {
+ if (r.getPrimaryKeyTable().equalsIgnoreCase(parentTableName) && r.getForeignKeyTable().equalsIgnoreCase(childTableName)) {
return;
}
}
@@ -825,8 +825,10 @@
Iterator i = config.getRelationship().iterator();
while (i.hasNext()) {
Relationship r = (Relationship) i.next();
- if (ref.getName().equals(r.getName()) || ref.getOpposite().getName().equals(r.getName())) {
- return r;
+ if (ref.getName().equals(r.getName())) {
+ if (getTableTypeName(r.getPrimaryKeyTable()).equals(ref.getContainingType().getName())) return r;
+ } else if(ref.getOpposite().getName().equals(r.getName())) {
+ if (getTableTypeName(r.getForeignKeyTable()).equals(ref.getContainingType().getName())) return r;
}
}
throw new RuntimeException("Could not find relationship " + ref.getName() + " in the configuration");
diff --git a/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/ResultMetadata.java b/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/ResultMetadata.java
index 2b3e8b2..fdd1845 100644
--- a/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/ResultMetadata.java
+++ b/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/ResultMetadata.java
@@ -144,7 +144,7 @@
String columnName = (String) i.next();
String pkTableName = columnName.substring(0, columnName.indexOf(idSpell));//_id, _Id, _iD, _ID anything
String fkTableName = (String) impliedRelationships.get(columnName);
- List pkTableProperties = (List) tableToPropertyMap.get(pkTableName);
+ List pkTableProperties = (List) tableToPropertyMap.get(configWrapper.getTableTypeName(pkTableName));
if ((pkTableProperties != null) && (pkTableProperties.contains("ID"))) {
configWrapper.addImpliedRelationship(pkTableName, fkTableName, columnName);
}