User: dsundstrom
  Date: 02/01/15 14:21:19

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCFindByQuery.java
  Log:
  Added support for read ahead on find.
  
  Revision  Changes    Path
  1.2       +21 -5     
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCFindByQuery.java
  
  Index: JDBCFindByQuery.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCFindByQuery.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JDBCFindByQuery.java      2001/11/28 11:32:54     1.1
  +++ JDBCFindByQuery.java      2002/01/15 22:21:19     1.2
  @@ -6,9 +6,13 @@
    */
   package org.jboss.ejb.plugins.cmp.jdbc;
   
  +import java.util.ArrayList;
  +import java.util.List;
  +
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge; 
   import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCQueryMetaData;
  +import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCReadAheadMetaData;
   
   /**
    * JDBCFindByQuery automatic finder used in CMP 1.x.
  @@ -19,7 +23,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Joe Shevland</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Justin Forder</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>danch (Dan Christopherson)</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public class JDBCFindByQuery extends JDBCAbstractQueryCommand {
      
  @@ -40,16 +44,28 @@
         String cmpFieldName = Character.toLowerCase(finderName.charAt(6)) +
               finderName.substring(7);
   
  +      // get the field
         cmpField = (JDBCCMPFieldBridge)entity.getCMPFieldByName(cmpFieldName);
         if(cmpField == null) {
            throw new IllegalArgumentException(
  -            "No finder for this method: " + finderName);
  +               "No finder for this method: " + finderName);
         }
         
  -      // Compute SQL      
  +      // set the preload fields
  +      JDBCReadAheadMetaData readAhead = q.getReadAhead();
  +      if(!readAhead.isOnFind()) {
  +         String eagerLoadGroupName = readAhead.getEagerLoadGroup();
  +         setPreloadFields(entity.getLoadGroup(eagerLoadGroupName));
  +      }
  +
  +      // get a list of all fields to be loaded
  +      List loadFields = new ArrayList();
  +      loadFields.addAll(entity.getPrimaryKeyFields());
  +      loadFields.addAll(getPreloadFields());
  +
  +      // generate the sql
         StringBuffer sql = new StringBuffer();
  -      sql.append("SELECT ").append(SQLUtil.getColumnNamesClause(
  -               entity.getJDBCPrimaryKeyFields()));
  +      sql.append("SELECT ").append(SQLUtil.getColumnNamesClause(loadFields));
         sql.append(" FROM ").append(entity.getTableName());
         sql.append(" WHERE ").append(SQLUtil.getWhereClause(cmpField));
         
  
  
  

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

Reply via email to