in rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java [177:229]
public Relationship addRelationship(String parentName, String childName, String relationshipName) {
//JIRA-952
QualifiedColumn parent = null;
QualifiedColumn child = null;
if(this.config.isDatabaseSchemaNameSupported()){
parent = new QualifiedColumn(parentName, true);
child = new QualifiedColumn(childName, true);
}
else{
parent = new QualifiedColumn(parentName);
child = new QualifiedColumn(childName);
}
Relationship r = FACTORY.createRelationship();
//JIRA-952
if(this.config.isDatabaseSchemaNameSupported()){
if(relationshipName == null)
r.setName(child.getSchemaName()+"."+child.getTableName());
else
r.setName(relationshipName);
r.setPrimaryKeyTable(parent.getSchemaName()+"."+parent.getTableName());
r.setForeignKeyTable(child.getSchemaName()+"."+child.getTableName());
}
else{
if(relationshipName == null)
r.setName(child.getTableName());
else
r.setName(relationshipName);
r.setPrimaryKeyTable(parent.getTableName());
r.setForeignKeyTable(child.getTableName());
}
if (this.logger.isDebugEnabled()) {
this.logger.debug("Created relationship from " + r.getPrimaryKeyTable()
+ " to " + r.getForeignKeyTable() + " named " + r.getName());
}
KeyPair pair = FACTORY.createKeyPair();
pair.setPrimaryKeyColumn(parent.getColumnName());
pair.setForeignKeyColumn(child.getColumnName());
r.getKeyPair().add(pair);
r.setMany(true);
config.getRelationship().add(r);
return r;
}