User: dsundstrom
  Date: 02/01/15 13:47:10

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc
                        JDBCDeclaredSQLQuery.java
  Log:
  Added support for read-ahead on-find.
  
  Revision  Changes    Path
  1.2       +27 -8     
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCDeclaredSQLQuery.java
  
  Index: JDBCDeclaredSQLQuery.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCDeclaredSQLQuery.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JDBCDeclaredSQLQuery.java 2001/11/28 11:32:54     1.1
  +++ JDBCDeclaredSQLQuery.java 2002/01/15 21:47:10     1.2
  @@ -7,6 +7,9 @@
   
   package org.jboss.ejb.plugins.cmp.jdbc;
   
  +import java.util.ArrayList;
  +import java.util.List;
  +
   import org.jboss.deployment.DeploymentException;
   
   import org.jboss.ejb.Container;
  @@ -16,6 +19,7 @@
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCQueryMetaData;
   import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCDeclaredQueryMetaData;
  +import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCReadAheadMetaData;
   
   /**
    * This class generates a query based on the delcared-sql xml specification.
  @@ -27,7 +31,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Justin Forder</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Michel de Groot</a>
    * @author <a href="[EMAIL PROTECTED]">danch (Dan Christopherson</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public class JDBCDeclaredSQLQuery extends JDBCAbstractQueryCommand {
      
  @@ -44,10 +48,18 @@
   
         metadata = (JDBCDeclaredQueryMetaData) q;
         
  +      // set the select object (either selectEntity or selectField)
         initSelectObject(manager);
   
  -      String sql = buildSQL();
  +      // set the preload fields
  +      JDBCReadAheadMetaData readAhead = metadata.getReadAhead();
  +      if(getSelectEntity() != null && !readAhead.isOnFind()) {
  +         String eagerLoadGroupName = readAhead.getEagerLoadGroup();
  +         setPreloadFields(getSelectEntity().getLoadGroup(eagerLoadGroupName));
  +      }
   
  +      // set the sql and parameters 
  +      String sql = buildSQL();
         setSQL(parseParameters(sql));
       }
    
  @@ -120,18 +132,25 @@
         
         String from = metadata.getFrom();
         if(getSelectField() == null) {
  -         JDBCEntityBridge selectEntity = getSelectEntity();
  -         String table = selectEntity.getMetaData().getTableName();
  +
  +         // we are selecting a full entity
  +         String table = getSelectEntity().getMetaData().getTableName();
  +
  +         // get a list of all fields to be loaded
  +         List loadFields = new ArrayList();
  +         loadFields.addAll(getSelectEntity().getPrimaryKeyFields());
  +         loadFields.addAll(getPreloadFields());
  +
            if(from != null && from.trim().length()>0) {
  -            sql.append(SQLUtil.getColumnNamesClause(
  -                  selectEntity.getJDBCPrimaryKeyFields(), table));
  +            sql.append(SQLUtil.getColumnNamesClause(loadFields, table));
               sql.append(" FROM ").append(table).append(" ").append(from);
            } else {
  -            sql.append(SQLUtil.getColumnNamesClause(
  -                  selectEntity.getJDBCPrimaryKeyFields()));
  +            sql.append(SQLUtil.getColumnNamesClause(loadFields));
               sql.append(" FROM ").append(table);
            }
         } else {
  +
  +         // we are just selecting one field
            JDBCCMPFieldBridge selectField = getSelectField();
            String table = selectField.getMetaData().getEntity().getTableName();
            if(from != null && from.trim().length()>0) {
  
  
  

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

Reply via email to