User: dsundstrom
  Date: 02/01/15 13:16:24

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata
                        JDBCRelationshipRoleMetaData.java
  Log:
  Added support for read ahead metadata.
  
  Changed auto generated column name to be just cmr field name unless there
  are more then one key column. In that case it uses the old
  cmrFieldName_keyFieldName, format.
  
  Revision  Changes    Path
  1.12      +67 -18    
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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- JDBCRelationshipRoleMetaData.java 2001/12/12 19:49:42     1.11
  +++ JDBCRelationshipRoleMetaData.java 2002/01/15 21:16:24     1.12
  @@ -8,6 +8,7 @@
   
   import java.util.Collection;
   import java.util.Collections;
  +import java.util.ArrayList;
   import java.util.HashMap;
   import java.util.Iterator;
   import java.util.Map;
  @@ -22,7 +23,7 @@
    * the ejb-jar.xml file's ejb-relation elements.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.11 $
  + * @version $Revision: 1.12 $
    */
   public final class JDBCRelationshipRoleMetaData {
      /**
  @@ -65,6 +66,11 @@
       */
      private final String cmrFieldType;
      
  +   /**
  +    * Type of the cmr field (i.e., collection or set)
  +    */
  +   private final JDBCReadAheadMetaData readAhead;
  +   
      private final Map tableKeyFields = new HashMap();
      private final Map foreignKeyFields = new HashMap();
      
  @@ -81,6 +87,7 @@
         multiplicityOne = relationshipRole.isMultiplicityOne();
         cascadeDelete = relationshipRole.isCascadeDelete();
         foreignKeyConstraint = false;
  +      readAhead = null;
         
         String tempCmrFieldName = relationshipRole.getCMRFieldName();
         if(tempCmrFieldName == null) {
  @@ -134,6 +141,16 @@
            foreignKeyConstraint = defaultValues.hasForeignKeyConstraint();
         }
   
  +      // read-ahead
  +      Element readAheadElement = 
  +            MetaData.getOptionalChild(element, "read-ahead");
  +      if(readAheadElement != null) {
  +         readAhead = new JDBCReadAheadMetaData(
  +               readAheadElement, entity.getReadAhead());
  +      } else {
  +         readAhead = entity.getReadAhead();
  +      }
  +
         if(relationMetaData.isTableMappingStyle()) {
            if("defaults".equals(element.getTagName())) {
               loadTableKeyFields();
  @@ -244,9 +261,16 @@
       */
      public JDBCRelationshipRoleMetaData getRelatedRole() {
         return relationMetaData.getOtherRelationshipRole(this);
  -   }
  +   } 
      
      /**
  +    * Gets the read ahead meta data
  +    */
  +   public JDBCReadAheadMetaData getReadAhead() {
  +      return readAhead;
  +   }
  +
  +   /**
       * Gets the foreign key fields of this role. The foreign key fields hold the
       * primary keys of the related entity. A relationship role has foreign key 
       * fields if the relation mapping style is foreign key and the other side of
  @@ -279,20 +303,33 @@
                  "for: " + relationshipRoleName);
         }
   
  +      ArrayList pkFields = new ArrayList();
  +
         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,
  -                  relationMetaData.isReadOnly(),
  -                  relationMetaData.getReadTimeOut());
  -            foreignKeyFields.put(cmpField.getFieldName(), cmpField);
  +            pkFields.add(cmpField);
            }
         }
  +      
  +      for(Iterator i = pkFields.iterator(); i.hasNext(); ) {
  +         JDBCCMPFieldMetaData cmpField = (JDBCCMPFieldMetaData)i.next();
  +      
  +         String columnName = getCMRFieldName();
  +         if(pkFields.size() > 1) {
  +            columnName += "_" + cmpField.getFieldName();
  +         }
  +
  +         cmpField = new JDBCCMPFieldMetaData(
  +               entity,
  +               cmpField,
  +               columnName,
  +               false,
  +               relationMetaData.isReadOnly(),
  +               relationMetaData.getReadTimeOut());
  +         foreignKeyFields.put(cmpField.getFieldName(), cmpField);
  +      }
      }
      
      /**
  @@ -349,20 +386,32 @@
       * this entity.
       */
      private void loadTableKeyFields() {
  +      ArrayList pkFields = new ArrayList();
   
         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,
  -                  relationMetaData.isReadOnly(),
  -                  relationMetaData.getReadTimeOut());
  -            tableKeyFields.put(cmpField.getFieldName(), cmpField);
  +            pkFields.add(cmpField);
            }
  +      }
  +      
  +      for(Iterator i = pkFields.iterator(); i.hasNext(); ) {
  +         JDBCCMPFieldMetaData cmpField = (JDBCCMPFieldMetaData)i.next();
  +      
  +         String columnName = entity.getName();
  +         if(pkFields.size() > 1) {
  +            columnName += "_" + cmpField.getFieldName();
  +         }
  +
  +         cmpField = new JDBCCMPFieldMetaData(
  +               entity,
  +               cmpField,
  +               columnName,
  +               false,
  +               relationMetaData.isReadOnly(),
  +               relationMetaData.getReadTimeOut());
  +         tableKeyFields.put(cmpField.getFieldName(), cmpField);
         }
      }
   
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to