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

Reply via email to