User: dsundstrom Date: 02/01/16 13:07:18 Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCLoadEntityCommand.java Log: Fixed bug where read ahead strategy was ignored. Added support for lazy load groups. Revision Changes Path 1.15 +23 -8 jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java Index: JDBCLoadEntityCommand.java =================================================================== RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- JDBCLoadEntityCommand.java 2002/01/15 22:33:08 1.14 +++ JDBCLoadEntityCommand.java 2002/01/16 21:07:18 1.15 @@ -40,7 +40,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Justin Forder</a> * @author <a href="mailto:[EMAIL PROTECTED]">Dirk Zimmermann</a> * @author <a href="mailto:[EMAIL PROTECTED]">danch (Dan Christopherson)</a> - * @version $Revision: 1.14 $ + * @version $Revision: 1.15 $ */ public class JDBCLoadEntityCommand { private final JDBCStoreManager manager; @@ -237,22 +237,37 @@ JDBCCMPFieldBridge requiredField, EntityEnterpriseContext ctx) { - ArrayList fields = new ArrayList(entity.getEagerLoadFields()); - if(requiredField != null && !fields.contains(requiredField)) { - fields.add(requiredField); + // get the load fields + ArrayList loadFields = new ArrayList(entity.getFields().size()); + if(requiredField == null) { + log.debug("Default eager-load for entity"); + loadFields.addAll(entity.getEagerLoadFields()); + } else { + loadFields.add(requiredField); + for(Iterator groups = entity.getLazyLoadGroups(); groups.hasNext();) { + List group = (List)groups.next(); + if(group.contains(requiredField)) { + for(Iterator fields = group.iterator(); fields.hasNext();) { + JDBCFieldBridge field = (JDBCFieldBridge)fields.next(); + if(!loadFields.contains(field)) { + loadFields.add(field); + } + } + } + } } // remove any field that is a member of the primary key // or has not timed out or is already loaded - for(Iterator iter=fields.iterator(); iter.hasNext();) { - JDBCFieldBridge field = (JDBCFieldBridge)iter.next(); + for(Iterator fields = loadFields.iterator(); fields.hasNext();) { + JDBCFieldBridge field = (JDBCFieldBridge)fields.next(); if(field.isPrimaryKeyMember() || !field.isReadTimedOut(ctx) || field.isLoaded(ctx)) { - iter.remove(); + fields.remove(); } } - return fields; + return loadFields; } }
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development