User: dsundstrom Date: 01/11/13 12:19:07 Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata JDBCRelationshipRoleMetaData.java Log: Added an error message for when a relationship is defined for a non-existant entity. Eliminated the weird foreign key column names that were sometimes generated for uni-directional relationships. Revision Changes Path 1.8 +42 -11 jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationshipRoleMetaData.java Index: JDBCRelationshipRoleMetaData.java =================================================================== RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationshipRoleMetaData.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- JDBCRelationshipRoleMetaData.java 2001/10/29 17:26:40 1.7 +++ JDBCRelationshipRoleMetaData.java 2001/11/13 20:19:07 1.8 @@ -22,7 +22,7 @@ * ejb-jar.xml file's ejb-relation elements. * * @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a> - * @version $Revision: 1.7 $ + * @version $Revision: 1.8 $ */ public final class JDBCRelationshipRoleMetaData { /** @@ -69,36 +69,67 @@ RelationshipRoleMetaData relationshipRole) throws DeploymentException { this.relationMetaData = relationMetaData; + RelationshipRoleMetaData relatedRole = + relationshipRole.getRelatedRoleMetaData(); relationshipRoleName = relationshipRole.getRelationshipRoleName(); multiplicityOne = relationshipRole.isMultiplicityOne(); cascadeDelete = relationshipRole.isCascadeDelete(); - cmrFieldName = relationshipRole.getCMRFieldName(); + String tempCmrFieldName = relationshipRole.getCMRFieldName(); + if(tempCmrFieldName == null) { + // no cmr field on this side use relatedEntityName_relatedCMRFieldName + tempCmrFieldName = relatedRole.getEntityName() + "_" + + relatedRole.getCMRFieldName(); + } + cmrFieldName = tempCmrFieldName; + cmrFieldType = relationshipRole.getCMRFieldType(); + // get the entity for this role entity = application.getBeanByEjbName(relationshipRole.getEntityName()); - - if (entity == null) - throw new DeploymentException("Related entity: "+relationshipRole.getEntityName()+" not found for: "+relationshipRoleName); + if(entity == null) { + throw new DeploymentException("Entity: " + + relationshipRole.getEntityName() + + " not found for: " + relationshipRoleName); + } if(relationMetaData.isTableMappingStyle()) { // load all pks of entity into tableKeys map for(Iterator i = entity.getCMPFields().iterator(); i.hasNext(); ) { JDBCCMPFieldMetaData cmpField = (JDBCCMPFieldMetaData)i.next(); if(cmpField.isPrimaryKeyMember()) { - cmpField = new JDBCCMPFieldMetaData(entity, cmpField, getCMRFieldName() + "_" + cmpField.getFieldName(), false); + cmpField = new JDBCCMPFieldMetaData( + entity, + cmpField, + getCMRFieldName() + "_" + cmpField.getFieldName(), + false); tableKeyFields.put(cmpField.getFieldName(), cmpField); } + } + } else if(relatedRole.isMultiplicityOne()){ + // get the related entity + String relatedEntityName = + relatedRole.getEntityName(); + JDBCEntityMetaData relatedEntity = + application.getBeanByEjbName(relatedEntityName); + if(relatedEntity == null) { + throw new DeploymentException("Entity: " + relatedEntityName + + " not found for: " + relationshipRoleName); } - } else if(relationshipRole.getRelatedRoleMetaData().isMultiplicityOne()){ + // load all pks of related entity into foreignKeys map - String relatedEntityName = relationshipRole.getRelatedRoleMetaData().getEntityName(); - JDBCEntityMetaData relatedEntity = application.getBeanByEjbName(relatedEntityName); - for(Iterator i = relatedEntity.getCMPFields().iterator(); i.hasNext(); ) { + for(Iterator i = relatedEntity.getCMPFields().iterator(); + i.hasNext(); + ) { + JDBCCMPFieldMetaData cmpField = (JDBCCMPFieldMetaData)i.next(); if(cmpField.isPrimaryKeyMember()) { - cmpField = new JDBCCMPFieldMetaData(entity, cmpField, getCMRFieldName() + "_" + cmpField.getFieldName(), false); + cmpField = new JDBCCMPFieldMetaData( + entity, + cmpField, + getCMRFieldName() + "_" + cmpField.getFieldName(), + false); foreignKeyFields.put(cmpField.getFieldName(), cmpField); } }
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development