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